Compare commits

..
Author SHA1 Message Date
Luis Fernando Molina 18c8f862ce Merge pull request #1682 from Superalgos/develop
Develop into Master - Beta 11 Official Release
2021-09-06 10:37:02 -04:00
Luis Fernando Molina 6a0a654c3d Merge pull request #1680 from Superalgos/plugins-docs
Plugins docs into Develop
2021-09-06 10:22:12 -04:00
Julian Molina 4eb9697ea8 Merge pull request #1679 from julian-molina/develop
Contribution: Governance tutorial feedback revision
2021-09-06 15:09:20 +02:00
Julian Molina b9b3e85cdf Deleting duplicate page 2021-09-06 15:09:05 +02:00
Julian Molina 76d289c921 Governance tutorial feedback revision 2021-09-06 15:05:22 +02:00
Luis Fernando Molina be65a32245 Merge pull request #1676 from PLuv/develop
Remove unnecessary data mining from plugin workspace; expand learning mine for beta 11 dMines
2021-09-06 03:45:03 -04:00
Philip Love d12d7c61c0 rmv more tst variable leftovers 2021-09-06 03:38:54 -04:00
Philip Love 05b48e7500 Correction to ML plugin workspace name 2021-09-06 03:37:57 -04:00
Philip Love 547949b91d Expansion of Learning Mine to include all current dMines at Beta 11 release 2021-09-06 03:36:33 -04:00
Luis Fernando Molina 9760f192c2 Merge pull request #1675 from Luis-Fernando-Molina/develop
Contribution: Foundations: User Defined Counter bug fixed
2021-09-06 02:51:24 -04:00
Luis Fernando Molina e2bc0b7991 Foundations: User Defined Counter bug fixed 2021-09-06 08:49:59 +02:00
Luis Fernando Molina 1638cf7567 Update TutorialSpace.js 2021-09-06 08:44:40 +02:00
Luis Fernando Molina e0f6d8e74a Merge pull request #1656 from romeox7/plugins-docs
Contribution: This is my contribution to Superalgos
2021-09-06 02:35:13 -04:00
Luis Fernando Molina 88537c6d18 Delete PERSONAL_FILES_NOT_ALLOWED.txt 2021-09-06 08:34:51 +02:00
Luis Fernando Molina ff7929f792 Delete Superalgos.desktop 2021-09-06 08:33:29 +02:00
Luis Fernando Molina c9826af31e Delete openvpn-repo-pkg-key.pub 2021-09-06 08:33:11 +02:00
Luis Fernando Molina f75c17cca4 Changes in User Profile done by Profile Owner harrellbm automatically merged by Superalgos.
User profile updates
2021-09-06 02:29:40 -04:00
Luis Fernando Molina 565ac3f325 Merge pull request #1674 from thaissmolina75/develop
Contribution: This is my contribution to Superalgos
2021-09-06 02:27:28 -04:00
thaissmolina75 c99d7aee2f This is my contribution to Superalgos 2021-09-05 23:44:41 -04:00
Brenden Harrell 0efb0cd566 Final claims for Beta 10 and 11 harrellbm 2021-09-05 18:16:06 -05:00
B Harrell dd90247ccc Merge branch 'Superalgos:develop' into develop 2021-09-05 18:11:12 -05:00
Brenden Harrell 8279b3b516 Revert Package-lock add 2021-09-05 18:03:55 -05:00
Luis Fernando Molina c267276104 Merge pull request #1672 from teehanming/develop
update
2021-09-05 16:11:14 -04:00
teehanming a6c948cbc8 Update teehanming.json 2021-09-06 01:35:56 +08:00
teehanming ca12a1510e icon update 2021-09-06 01:35:48 +08:00
Julian Molina 05488f499b Merge pull request #1671 from julian-molina/develop
Contribution: README Top contributors update
2021-09-05 18:09:00 +02:00
Julian Molina 0bf6ce548e README Top contributors update 2021-09-05 18:08:12 +02:00
Julian Molina 7ed863e636 Merge pull request #1670 from julian-molina/develop
Contribution: Welcome tutorial social trading step teaser
2021-09-05 18:04:14 +02:00
Julian Molina 52fedb04b9 Welcome tutorial social trading step teaser 2021-09-05 17:53:35 +02:00
Julian Molina 6bbfdf6b59 Merge pull request #1669 from julian-molina/develop
Contribution: Governance workspaces and plugins revision
2021-09-05 16:37:58 +02:00
Julian Molina e19df9f327 Governance workspaces and plugins revision 2021-09-05 16:36:41 +02:00
Brenden Harrell 7949ca88e9 More User Profile Update [harrellbm] 2021-09-05 08:32:23 -05:00
Julian Molina 3ae43bfb3d Merge pull request #1667 from julian-molina/develop
Contribution: README TensorFlow command on node setup
2021-09-05 15:13:18 +02:00
Julian Molina f53a0c5158 README TensorFlow command on node setup 2021-09-05 15:13:00 +02:00
Luis Fernando Molina e8cd74ae4e Merge pull request #1665 from julian-molina/develop
Contribution: Run JS
2021-09-05 09:02:29 -04:00
Luis Fernando Molina c149341110 Merge pull request #1666 from Luis-Fernando-Molina/develop
Contribution: node setup fix
2021-09-05 09:01:31 -04:00
Luis Fernando Molina fea8c85646 node setup fix 2021-09-05 15:01:05 +02:00
Julian Molina 98d067e392 Run JS 2021-09-05 15:01:03 +02:00
Julian Molina e29001d6de Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-05 14:43:52 +02:00
Luis Fernando Molina 35ebb597bb Merge pull request #1664 from Luis-Fernando-Molina/develop
Contribution: node setup fix5
2021-09-05 08:43:32 -04:00
Luis Fernando Molina e3f5161156 node setup fix5 2021-09-05 14:43:09 +02:00
Brenden Harrell db723fdf14 Platform Package-lock file to fix setup script 2021-09-05 07:31:35 -05:00
B Harrell 75dadff4bc Merge branch 'Superalgos:develop' into develop 2021-09-05 07:24:53 -05:00
Julian Molina 3ebe1b7d11 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-05 14:15:53 +02:00
Luis Fernando Molina 45bbc39947 Merge pull request #1663 from Luis-Fernando-Molina/develop
Contribution: dependencies fix 3
2021-09-05 08:13:39 -04:00
Luis Fernando Molina 61117fb4b6 dependencies fix 3 2021-09-05 14:13:26 +02:00
Julian Molina 5c0b9606ea Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-05 14:05:04 +02:00
Luis Fernando Molina 9312348299 Merge pull request #1662 from Luis-Fernando-Molina/develop
Contribution: node setup fix 2
2021-09-05 08:04:20 -04:00
Luis Fernando Molina fe0bbe93c9 node setup fix 2 2021-09-05 14:04:02 +02:00
Julian Molina 2aee64489c Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-05 13:44:52 +02:00
Luis Fernando Molina af21d524cc Merge pull request #1661 from Luis-Fernando-Molina/develop
Contribution: Missing web3 dependency at Platform
2021-09-05 07:38:06 -04:00
Luis Fernando Molina 4e4944c63b Missing web3 dependency at Platform 2021-09-05 13:37:43 +02:00
Luis Fernando Molina fb2301fd26 Merge pull request #1659 from julian-molina/develop
Contribution: Node platform and footer
2021-09-05 07:29:32 -04:00
Julian Molina 5b1fd7b7d2 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-05 13:28:29 +02:00
Luis Fernando Molina 0af57681ee Merge pull request #1660 from Luis-Fernando-Molina/develop
Contribution: setup script fixed
2021-09-05 07:27:54 -04:00
Luis Fernando Molina 017dec2ded setup script fixed 2021-09-05 13:27:11 +02:00
Julian Molina 27f4d411fc Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-05 13:16:19 +02:00
Julian Molina c8205c9e0b Node platform and footer 2021-09-05 13:15:51 +02:00
Luis Fernando Molina 24e0845cd2 Merge pull request #1658 from Luis-Fernando-Molina/develop
Contribution: Client to Platform code reaorg
2021-09-05 07:10:03 -04:00
Luis Fernando Molina 881682ea96 Client to Platform code reaorg 2021-09-05 13:07:54 +02:00
Luis Fernando Molina 2d6eb2a8b8 More Client Reorg 2021-09-05 12:59:53 +02:00
Luis Fernando Molina 2a88a3778a Dependencies Upgraded 2021-09-05 12:11:16 +02:00
Luis Fernando Molina b942c855ac update some dependencies 2021-09-05 11:55:21 +02:00
Luis Fernando Molina 781f6b8fa1 Client Files into its own folder 2021-09-05 11:46:18 +02:00
Luis Fernando Molina 17656a12c0 run command 2021-09-05 11:18:45 +02:00
Luis Fernando Molina d6f4981278 Relocating the UI folder 2021-09-05 10:36:52 +02:00
Luis Fernando Molina cf0e6ebd4f Hello World running at Desktop App 2021-09-05 10:11:34 +02:00
Jerome P 562de222ec My Superalgos Review 2021-09-04 17:32:50 +00:00
Jerome P d968b07f39 This is my contribution to Superalgos 2021-09-04 17:19:37 +00:00
Romeox7 d50591fd95 This is my contribution to Superalgos 2021-09-04 16:40:31 +00:00
Luis Fernando Molina 73053884d4 Merge pull request #1655 from Luis-Fernando-Molina/develop
Contribution: Foundations Project: Client Code Mantainance @ HTTP Interface
2021-09-04 11:20:20 -04:00
Luis Fernando Molina a649b5e767 DeepScan Bug Fixes 2021-09-04 17:16:33 +02:00
Luis Fernando Molina ab1b96d9d1 Foundations Project: Client Code Mantainance @ HTTP Interface 2021-09-04 17:03:43 +02:00
Luis Fernando Molina bce399dc6e more cleaning 2021-09-04 16:44:36 +02:00
Luis Fernando Molina 877ac25e4d More Mantainance work 2021-09-04 16:36:08 +02:00
Luis Fernando Molina 74f1c7d27b Stylesheets done 2021-09-04 16:18:02 +02:00
Luis Fernando Molina 0489e2e047 http requests 2021-09-04 15:40:24 +02:00
Luis Fernando Molina c343900615 HTTP Responses 2021-09-04 14:53:31 +02:00
Luis Fernando Molina 60657c79fd More Cleaning of HTTP Interface 2021-09-04 14:18:05 +02:00
Julian Molina 03e4ce1f10 Merge pull request #1654 from julian-molina/develop
Contribution: Governance tutorial revision
2021-09-04 13:51:50 +02:00
Julian Molina d69e630303 Governance tutorial revision 2021-09-04 13:50:37 +02:00
Luis Fernando Molina c99cbbc7a0 Update httpInterface.js 2021-09-04 13:32:31 +02:00
Luis Fernando Molina 9247044dc0 Cleaning HTTP Interface 2021-09-04 13:13:19 +02:00
Luis Fernando Molina 9488ffed5d Delete suite-dummy.html 2021-09-04 12:04:35 +02:00
Luis Fernando Molina 966e9f7c6a Merge pull request #1652 from Luis-Fernando-Molina/develop
Contribution: genereteUniqueId function moved to SA
2021-09-04 05:30:18 -04:00
Luis Fernando Molina d29335489f genereteUniqueId function moved to SA 2021-09-04 11:29:01 +02:00
Luis Fernando Molina 9236a277f2 Merge pull request #1649 from Sixssou/plugins-docs
Plugins docs
2021-09-03 15:16:40 -04:00
Luis Fernando Molina 07c4303d93 Delete workspace.xml 2021-09-03 21:14:50 +02:00
Luis Fernando Molina ede40ef335 Delete vcs.xml 2021-09-03 21:14:30 +02:00
Luis Fernando Molina bff589c75d Delete modules.xml 2021-09-03 21:14:21 +02:00
Luis Fernando Molina ff75aa5126 Delete misc.xml 2021-09-03 21:14:08 +02:00
Luis Fernando Molina d474537614 Delete Superalgos.iml 2021-09-03 21:13:40 +02:00
Luis Fernando Molina 88246d2b35 Merge pull request #1651 from Superalgos/develop
Develop into Plugins-Docs
2021-09-03 15:12:51 -04:00
Julian Molina 6dca7ae0dd Merge pull request #1645 from julian-molina/develop
Contribution: Governance tutorial extension WIP
2021-09-03 20:01:24 +02:00
Julian Molina 5262e191e5 Governance tutorial main extension done 2021-09-03 20:00:40 +02:00
Cyril 6812c4b257 Hello world FR translation 2021-09-03 17:03:20 +02:00
Cyril 5d9edebc2d First contrib 2021-09-03 16:40:55 +02:00
Luis Fernando Molina 40c7307086 Molutple Users Followed 2021-09-03 15:56:30 +02:00
Luis Fernando Molina d091a28c79 Event Following User Debuged 2021-09-03 15:48:10 +02:00
Luis Fernando Molina 6532fec733 Merge pull request #1647 from Luis-Fernando-Molina/develop
Contribution: Platform Bug Fixed: CLIENT_WEB_SOCKETS_INTERFACE_PORT not correctly refactored.
2021-09-03 08:58:52 -04:00
Luis Fernando Molina b7535dd779 Platform Bug Fixed: CLIENT_WEB_SOCKETS_INTERFACE_PORT not correctly refactored. 2021-09-03 14:57:37 +02:00
Luis Fernando Molina 3e079b21a7 Query Types as Global Contants 2021-09-03 13:08:57 +02:00
Julian Molina 91d4d395ea Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-03 12:59:19 +02:00
Luis Fernando Molina b4d2a17f12 Test Query User Profile Stats debugged 2021-09-03 12:47:33 +02:00
Julian Molina bb019a7ca2 Governance tutorial extension WIP 2021-09-03 12:46:20 +02:00
Luis Fernando Molina 9373fd6f71 Merge pull request #1644 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network: Query User Profiles debugged
2021-09-03 06:33:02 -04:00
Luis Fernando Molina 412f099ee9 Superalgos Network: Deepscan bug fixed 2021-09-03 12:30:48 +02:00
Luis Fernando Molina eab738ddfa Merge pull request #1643 from quantum8/develop
Spelling fix
2021-09-03 06:27:36 -04:00
Luis Fernando Molina ba9f3bc4a4 Merge pull request #1642 from Tyhote/plugins-docs
Contribution: My Superalgos Review
2021-09-03 06:26:45 -04:00
Luis Fernando Molina afd73fc82e Update package-lock.json 2021-09-03 12:25:38 +02:00
Luis Fernando Molina 67ec986422 Superalgos Network: Query User Profiles debugged 2021-09-03 12:23:42 +02:00
Luis Fernando Molina 2645df775e Testing Frist Query 2021-09-03 08:42:54 +02:00
Luis Fernando Molina 2c181aaeed Create UserProfiles.js 2021-09-03 08:17:56 +02:00
quantum8 0fc22b5f56 Update Delta.json
spelling fix
2021-09-03 11:33:27 +10:00
quantum8 243f2ec1d8 Update sparta-data-mine-001-sparta-by-@julian-molina.json
Spelling fix
2021-09-03 11:31:47 +10:00
quantum8 f519ad7e9f Update sparta-data-mine-004-relative-strenght-index-rsi-sparta-indicator.json
Spelling fix
2021-09-03 11:30:46 +10:00
Tristan Dow d583eb825e My Superalgos Review 2021-09-02 14:28:18 -05:00
Julian Molina fafd2666c6 Merge pull request #1641 from julian-molina/develop
Contribution: Governance tutorial revision
2021-09-02 20:58:03 +02:00
Julian Molina c143e518dd Governance tutorial revision 2021-09-02 20:56:31 +02:00
Luis Fernando Molina a07ca6b1f7 Merge pull request #1639 from Luis-Fernando-Molina/develop
Contribution: Governance Tab Bug fixed
2021-09-02 14:01:13 -04:00
Luis Fernando Molina 433addd020 Governance Tab Bug fixed 2021-09-02 19:54:35 +02:00
Luis Fernando Molina 18bc792f52 Merge pull request #1638 from Luis-Fernando-Molina/develop
Contribution: Governance final touches
2021-09-02 13:02:33 -04:00
Luis Fernando Molina a0a7e52edc Governance Bug Fixed: No resizing Docs and Gov tab. 2021-09-02 19:00:21 +02:00
Luis Fernando Molina 3f4c243da5 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-02 19:00:11 +02:00
Luis Fernando Molina 622bdebb80 Governance final touches 2021-09-02 18:36:58 +02:00
Luis Fernando Molina 71535da022 Merge pull request #1637 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fixed: Flashing status and values
2021-09-02 12:17:54 -04:00
Luis Fernando Molina 4fd57ad93c Governance Bug Fixed: Flashing status and values 2021-09-02 18:15:51 +02:00
Julian Molina f241310835 Merge pull request #1636 from julian-molina/develop
Contribution: Governance How to
2021-09-02 17:58:41 +02:00
Julian Molina 6ad439a3db Governance How to 2021-09-02 17:56:53 +02:00
Luis Fernando Molina 386ce248ae Merge pull request #1635 from Luis-Fernando-Molina/develop
Contribution: Governance System Perfmance Improvement
2021-09-02 11:14:00 -04:00
Luis Fernando Molina d2dd1d9f22 Governance System Perfmance Improvement 2021-09-02 17:13:43 +02:00
Luis Fernando Molina 36e00115ed Adding Profiles Query 2021-09-02 16:58:20 +02:00
Julian Molina c815d07c19 Merge pull request #1634 from julian-molina/develop
Contribution: Main governance workspace
2021-09-02 15:42:22 +02:00
Julian Molina 22bf9fa486 Main governance workspace 2021-09-02 15:41:53 +02:00
Julian Molina 0806627b02 Merge pull request #1633 from julian-molina/develop
Contribution: Main governance workspace and plugins cleaned up
2021-09-02 15:27:45 +02:00
Julian Molina 2b44c0e0d1 Main governance workspace and plugins cleaned up 2021-09-02 15:25:33 +02:00
Luis Fernando Molina aa26c4458c Changes in User Profile done by Profile Owner Smidy13 automatically merged by Superalgos.
Profile: Smidy13 Add Additional Claims Support in Profile
2021-09-02 07:41:02 -04:00
Luis Fernando Molina 4de654f4dd Merge pull request #1631 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network: Websockets Handshake debugged
2021-09-02 07:40:36 -04:00
Julian Molina fa862c915d Merge pull request #1629 from julian-molina/develop
Contribution: Governance workspaces WIP
2021-09-02 13:24:08 +02:00
Julian Molina e8c0893623 Governance workspaces done 2021-09-02 13:22:56 +02:00
Luis Fernando Molina b4b29947bf Superalgos Network: Websockets Handshake debugged. Deepscan bug fixed 2021-09-02 13:08:51 +02:00
Luis Fernando Molina bf12e9c84c Superalgos Network: Websockets Handshake debugged 2021-09-02 12:59:23 +02:00
Smidy13 a610c99b2f Profile: Smidy13 Add Additional Claims Support in Profile 2021-09-02 22:11:59 +12:00
Julian Molina 055a0c60e9 Workspaces wip 2021-09-02 11:57:39 +02:00
Julian Molina 996f6442fd Governance workspaces WIP 2021-09-02 11:27:06 +02:00
Luis Fernando Molina ddb1af522f Superalgos Network: handshakeProducedure implemented 2021-09-02 09:50:58 +02:00
Julian Molina 63b753e59b Merge pull request #1627 from julian-molina/develop
Contribution: Flows topic WIP
2021-09-01 20:03:26 +02:00
Julian Molina b55439d3a9 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-01 20:01:10 +02:00
Julian Molina 47c1744dbf Book revision complete 2021-09-01 19:58:43 +02:00
Luis Fernando Molina b08828a092 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-09-01 18:24:33 +02:00
Julian Molina e9ec8688db Token rewards flow 2021-09-01 18:18:54 +02:00
Julian Molina e4f2d51c47 Flows topic WIP 2021-09-01 18:08:01 +02:00
Julian Molina 3e6c66e73c Merge pull request #1626 from julian-molina/develop
Contribution: Deleted offending Docs Node Page causing trouble
2021-09-01 15:00:43 +02:00
Julian Molina 1f1ca73592 Deleted offending Docs Node Page causing trouble 2021-09-01 15:00:02 +02:00
Julian Molina 2e32610862 Merge pull request #1622 from julian-molina/develop
Contribution: User profile topic WIP
2021-09-01 14:52:58 +02:00
Julian Molina 7c6361a69b User Profile topic done 2021-09-01 14:52:28 +02:00
Julian Molina 483ccbc39a Voting program done 2021-09-01 14:25:52 +02:00
Luis Fernando Molina 51e738cb9f Changes in User Profile done by Profile Owner Raplh2502 automatically merged by Superalgos.
Contribution: user profile submit
2021-09-01 05:36:36 -04:00
Luis Fernando Molina b4ae67503f Merge pull request #1621 from PLuv/develop
Modify setup.js: In event WinOS error installing TF-modules provides …
2021-09-01 05:36:08 -04:00
Julian Molina 064e98c0b1 User profile topic WIP 2021-09-01 11:34:28 +02:00
Philip Love 0ef9969e55 Modify setup.js: In event WinOS error installing TF-modules provides user with detailed instructions on how to get their WinOS/nodejs dependencies installed correctly to facilitate installation of tfjs-node 2021-09-01 00:58:51 -04:00
Raphl2502 1cb72cfbc2 Submission of thomas profile (Raphl2502) 2021-08-31 22:20:28 +02:00
Julian Molina cca4066e4e Merge pull request #1619 from julian-molina/develop
Contribution: Definitions topic revision
2021-08-31 21:14:05 +02:00
Julian Molina ba57ac8b07 User Profile topic WIP 2021-08-31 21:12:14 +02:00
Julian Molina e9ed6e6c10 Definitions finished 2021-08-31 20:41:21 +02:00
Luis Fernando Molina b9e170a0bc Deepscan bug fixed 2021-08-31 18:46:42 +02:00
Luis Fernando Molina 2225ae8be0 Merge pull request #1618 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network: Web Sockets Client and Server working.
2021-08-31 12:45:47 -04:00
Julian Molina 173ba7a512 Definitions topic revision 2021-08-31 18:43:58 +02:00
Luis Fernando Molina a4ac062fc0 Superalgos Network: Web Sockets Client and Server working. 2021-08-31 18:41:58 +02:00
Julian Molina 9c66ebd8c2 Merge pull request #1615 from julian-molina/develop
Contribution: Financial Programs WIP
2021-08-31 17:32:36 +02:00
Julian Molina 3f679e8e90 All programs finished 2021-08-31 17:31:35 +02:00
Luis Fernando Molina b18b1f2342 Web Socket Client Implemented 2021-08-31 15:48:03 +02:00
Luis Fernando Molina b47b9b3dcf Adding the Social Trading Project 2021-08-31 14:42:44 +02:00
Luis Fernando Molina cf3c1358e1 Merge pull request #1617 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network: Websockets Implemented
2021-08-31 07:32:47 -04:00
Luis Fernando Molina b262400441 Superalgos Network: DeepScan Bugs Fixed 2021-08-31 13:30:29 +02:00
Luis Fernando Molina 743885aff5 runNetworkScript Debugged 2021-08-31 13:26:55 +02:00
Luis Fernando Molina 895c57aa0d Node Modules 2021-08-31 12:28:49 +02:00
Luis Fernando Molina a50a8b7c79 node modules 2021-08-31 12:23:19 +02:00
Luis Fernando Molina b264900b87 Update ClientInterface.js 2021-08-31 11:07:52 +02:00
Julian Molina d3062bdc14 Financial Programs WIP 2021-08-31 10:53:50 +02:00
Luis Fernando Molina 6858abf5e2 eventReceived of Client Interface Implemented 2021-08-31 10:53:34 +02:00
Julian Molina efd7c1ce3a Merge pull request #1614 from julian-molina/develop
Contribution: Voting Program done
2021-08-31 10:11:49 +02:00
Julian Molina f297991e20 Voting Program done 2021-08-31 10:09:19 +02:00
Luis Fernando Molina 06d0f3bf53 Websockets Handshake Procedure 2021-08-31 09:23:10 +02:00
Luis Fernando Molina bec02cb3bc Merge pull request #1613 from thaissmolina75/develop
Contribution: spanish trans
2021-08-31 01:46:44 -04:00
thaissmolina75 0374939ad6 spanish trans 2021-08-30 23:13:02 -04:00
Julian Molina 0f3a6a9786 Merge pull request #1611 from julian-molina/develop
Contribution: Voting Program WIP
2021-08-30 23:01:50 +02:00
Julian Molina f208abe369 Weight Votes 2021-08-30 23:01:13 +02:00
Julian Molina 6fe27dd72b Claim Votes section 2021-08-30 21:19:32 +02:00
Luis Fernando Molina 9fb12699f0 Merge pull request #1612 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network: Users Profiles loaded into Memory
2021-08-30 11:31:40 -04:00
Luis Fernando Molina 02396798b8 Superalgos Network: DeepScan bug fixes 2021-08-30 17:19:56 +02:00
Luis Fernando Molina 0bed570595 Superalgos Network: Users Profiles loaded into Memory 2021-08-30 17:13:48 +02:00
Luis Fernando Molina a52e9aa0a9 Ready for first debug 2021-08-30 16:28:05 +02:00
Julian Molina 1d676e4931 Voting Program WIP 2021-08-30 15:25:42 +02:00
Luis Fernando Molina 62726d8faa Ready to Load Plugins 2021-08-30 15:01:06 +02:00
Luis Fernando Molina 15aab85030 Reorganization Complete 2021-08-30 14:53:37 +02:00
Luis Fernando Molina b6d04746d6 All modules moved to Projects structure 2021-08-30 14:42:13 +02:00
Julian Molina bb9ebcfafc Merge pull request #1610 from julian-molina/develop
Contribution: Finished Claims Program
2021-08-30 14:14:57 +02:00
Julian Molina 73728a4356 Finished Claims Program 2021-08-30 14:14:02 +02:00
Luis Fernando Molina ecd0dcc761 Network Workspace 2021-08-30 13:13:37 +02:00
Luis Fernando Molina 85cc9c2c3d Fixes to allow a new Project to have globals without UI components 2021-08-30 12:34:49 +02:00
Luis Fernando Molina 5d57fe0c76 Merge pull request #1606 from Luis-Fernando-Molina/develop
Contribution: Governance: Claims power refactoring
2021-08-30 06:12:09 -04:00
Luis Fernando Molina fc716b9d95 Governance: Claims power refactoring 2021-08-30 12:08:00 +02:00
Luis Fernando Molina 5550977b52 Merge pull request #1605 from Luis-Fernando-Molina/develop
Contribution: Bug Fix Governance Docs Claims Program
2021-08-30 05:58:09 -04:00
Luis Fernando Molina fd2eb5eabe Bug Fix Governance Docs Claims Program 2021-08-30 11:57:30 +02:00
Luis Fernando Molina 9a5851714c Merge pull request #1604 from Luis-Fernando-Molina/develop
Contribution: Introduction of SA as a namespace for modules shared between different system components
2021-08-30 05:23:33 -04:00
Luis Fernando Molina 71514d580e Multi-Project module reused between Client and Task Server 2021-08-30 11:16:04 +02:00
Luis Fernando Molina 6504f47b6f Introduction of SA as a namespace for modules shared between different system components 2021-08-30 10:40:31 +02:00
Luis Fernando Molina 30759dc934 Bug fixed 2021-08-30 09:51:18 +02:00
Luis Fernando Molina 9c9de3ff97 Merge pull request #1603 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network: All queries reviewd and adapted for Bot Profiles.
2021-08-29 16:49:08 -04:00
Luis Fernando Molina 8c5542226b Superalgos Network: All queries reviewd and adapted for Bot Profiles. 2021-08-29 22:11:23 +02:00
Luis Fernando Molina bb4c62dd38 Adding some comments 2021-08-29 21:17:21 +02:00
Julian Molina 26e502d896 Merge pull request #1602 from julian-molina/develop
Contribution: Claims Program WIP
2021-08-29 20:05:44 +02:00
Julian Molina b94edd16f2 Claims folders 2021-08-29 20:04:22 +02:00
Julian Molina c1f41e50dd Claims Program WIP 2021-08-29 19:56:43 +02:00
Luis Fernando Molina c696436769 Merge pull request #1601 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network: Almost all queries reviewed
2021-08-29 12:01:11 -04:00
Luis Fernando Molina 06b5b9956c Cleaning 2021-08-29 17:45:53 +02:00
Luis Fernando Molina 390115d789 Global Contants Implemented 2021-08-29 17:44:46 +02:00
Luis Fernando Molina 79adad9893 Utilities for Queries 2021-08-29 17:34:54 +02:00
Luis Fernando Molina 541370c6a8 Queries Following and Followers 2021-08-29 17:11:14 +02:00
Luis Fernando Molina 50e6643062 Post Replies Query done 2021-08-29 16:53:34 +02:00
Luis Fernando Molina 2812dc2ab1 Update ProfilePosts.js 2021-08-29 16:31:32 +02:00
Luis Fernando Molina 4c9701965a User Profile and Bot Profiles Statistics done 2021-08-29 13:51:03 +02:00
Luis Fernando Molina dec4541210 Bug Fixed with Following and Followers of Bots 2021-08-29 13:18:57 +02:00
Julian Molina bfc9a0ecf4 Merge pull request #1599 from julian-molina/develop
Contribution: Finished Community Building Programs
2021-08-29 13:14:36 +02:00
Julian Molina 825b17d24c More definitions and concepts 2021-08-29 13:14:15 +02:00
Luis Fernando Molina c7011e4183 added userprofileId to Bot 2021-08-29 13:11:22 +02:00
Luis Fernando Molina 3ac5e16c44 Merge pull request #1600 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network: Reimplementing basic concepts
2021-08-29 06:41:26 -04:00
Luis Fernando Molina 71d06794c0 Changes in User Profile done by Profile Owner 9808us automatically merged by Superalgos.
Contribution: User profile update 9808us
2021-08-29 06:40:41 -04:00
Luis Fernando Molina d42f473a91 Superalgos Network: Reimplementing basic concepts 2021-08-29 12:39:54 +02:00
Luis Fernando Molina 44219d2939 Update SocialGraphNetwokNode.js 2021-08-29 12:36:55 +02:00
Luis Fernando Molina 9bb7d70eb6 Event, User Profile, Bot Profile, Post re-implementation finished 2021-08-29 12:35:27 +02:00
Julian Molina 6b483d72be Finished Community Building Programs 2021-08-29 12:29:53 +02:00
Luis Fernando Molina 648f699b56 Re Writting Event Processing 2021-08-29 11:45:30 +02:00
Luis Fernando Molina 4aa11efddf Post Re Implemented 2021-08-29 10:35:41 +02:00
Julian Molina 2554f5592b Merge pull request #1598 from julian-molina/develop
Contribution: Onboarding Programs
2021-08-29 09:45:54 +02:00
Luis Fernando Molina af332691d5 Bot Profile Re Implemented 2021-08-29 09:32:44 +02:00
Julian Molina b0fdd80c74 Onboarding Programs 2021-08-29 09:24:55 +02:00
Luis Fernando Molina 1cd04a056b User Profile re-written 2021-08-29 09:16:30 +02:00
9808us 60839e5138 User profile update 9808us 2021-08-29 08:49:51 +02:00
Luis Fernando Molina 4c5583813f Merge pull request #1596 from Superalgos/develop
Develop into Master: Hot Fix of the Readme file that had broken links.
2021-08-29 02:37:22 -04:00
Brenden Harrell e2b40dc4d6 Add Asset claims 2021-08-28 16:02:49 -05:00
Luis Fernando Molina b7fdc7feb7 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-28 21:54:55 +02:00
Luis Fernando Molina a8e8f0fa9d Changes in User Profile done by Profile Owner 9808us automatically merged by Superalgos.
Contribution: This is my first submission of User Profile [9808us]
2021-08-28 15:49:56 -04:00
9808us ebe4e27890 This is my second submission of User Profile [9808us] 2021-08-28 21:43:49 +02:00
9808us ba6a385d55 This is my first submission of User Profile [9808us] 2021-08-28 21:11:14 +02:00
B Harrell 74ade01069 Merge branch 'Superalgos:develop' into develop 2021-08-28 13:58:31 -05:00
Luis Fernando Molina 4a202b909a Superalgos Network: Bot Profile Stats Implemented 2021-08-28 20:30:40 +02:00
Luis Fernando Molina 414e25b6d5 Changes in User Profile done by Profile Owner ssplatt automatically merged by Superalgos.
Profile update for ssplatt
2021-08-28 13:49:11 -04:00
Brett Taylor ce7ce89150 update ssplatt profile 2021-08-28 13:43:26 -04:00
Luis Fernando Molina b177bd6a67 Merge pull request #1592 from Luis-Fernando-Molina/develop
Contribution: Fix Auto Arrange User Profiles
2021-08-28 13:39:39 -04:00
Luis Fernando Molina d866b898cd Fix Auto Arrange User Profiles 2021-08-28 19:38:57 +02:00
Luis Fernando Molina 6b70d02029 Merge pull request #1591 from Luis-Fernando-Molina/develop
Contribution: User Profiles auto ordered.
2021-08-28 13:32:52 -04:00
Julian Molina a50b1ef7a5 Merge pull request #1590 from julian-molina/develop
Contribution: Community Building Programs WIP
2021-08-28 19:21:52 +02:00
Julian Molina 2c83973b92 Many new concepts defined 2021-08-28 19:21:21 +02:00
Luis Fernando Molina 31a8a5c473 Goverannce System auto positioning of Profiles 2021-08-28 19:12:06 +02:00
Luis Fernando Molina 72bf5129a8 User Profiles auto ordered. 2021-08-28 19:04:09 +02:00
Luis Fernando Molina 94c74d0bb7 Changes in User Profile done by Profile Owner Smidy13 automatically merged by Superalgos.
Profile: [Smidy13] Further Additions for Beta 10 Claims
2021-08-28 12:33:25 -04:00
Brenden Harrell 485817a623 Add community programs to profile 2021-08-28 11:29:21 -05:00
Julian Molina 649bc4e0a9 Community Building Programs WIP 2021-08-28 18:25:52 +02:00
Julian Molina 7763520845 Merge pull request #1589 from julian-molina/develop
Contribution: README removing format
2021-08-28 17:14:11 +02:00
Julian Molina a6bc5b34e8 README removing format 2021-08-28 17:13:58 +02:00
Julian Molina 5e138be57b Merge pull request #1588 from julian-molina/develop
Contribution: README format
2021-08-28 17:11:44 +02:00
Julian Molina cfd8aba0ea README format 2021-08-28 17:11:31 +02:00
Julian Molina 084dc6404a Merge pull request #1587 from julian-molina/develop
Contribution: README includes Getting Started Guide
2021-08-28 17:01:55 +02:00
Julian Molina 7c0a0b44d5 README includes Getting Started Guide 2021-08-28 16:58:18 +02:00
Julian Molina 4b4a483b49 Merge pull request #1581 from julian-molina/develop
Contribution: User Profile hierarchy WIP
2021-08-28 15:45:31 +02:00
Julian Molina 26063d4a86 User Profile docs WIP 2021-08-28 15:44:57 +02:00
Smidy13 d4a3e56611 Merge branch 'develop' of https://github.com/Smidy13/Superalgos into develop 2021-08-29 00:15:48 +12:00
Smidy13 f5682932c3 Profile: Further Additions for Beta 10 Claims 2021-08-29 00:15:15 +12:00
Luis Fernando Molina 053bc54c01 Merge pull request #1585 from Luis-Fernando-Molina/develop
Contribution: Superalgo Network bug fixes
2021-08-28 04:42:09 -04:00
Luis Fernando Molina a1e790c7bb Bug Fixes 2021-08-28 10:11:01 +02:00
Julian Molina db3c9a89d0 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-28 10:01:55 +02:00
Luis Fernando Molina b7eeb0e549 Supporting Post Removal 2021-08-28 10:01:36 +02:00
Luis Fernando Molina 0be94e7e00 addPost at botProfile fixed 2021-08-28 09:50:28 +02:00
Luis Fernando Molina a5c80fc152 Changes in User Profile done by Profile Owner Smidy13 automatically merged by Superalgos.
Profile: Updated Profile incl. Claims and Votes
2021-08-28 03:31:36 -04:00
Luis Fernando Molina ec7d8ea194 Changes in User Profile done by Profile Owner PLuv automatically merged by Superalgos.
Update: User-Profiles[PLuv]
2021-08-28 03:31:32 -04:00
Philip Love f078e82623 Update: User-Profiles[PLuv] 2021-08-28 01:48:09 -04:00
Smidy13 d9b618b42d Profile: Updated Profile incl. Claims and Votes 2021-08-28 12:18:26 +12:00
Julian Molina f82968a623 User Profile hierarchy WIP 2021-08-27 22:51:35 +02:00
Julian Molina 297bcd5e7a Merge pull request #1578 from julian-molina/develop
Contribution: Building your profile WIP
2021-08-27 22:01:02 +02:00
Julian Molina a5d46133d2 User Profile hierarchy WIP 2021-08-27 22:00:34 +02:00
Luis Fernando Molina b88bedb77a Merge pull request #1580 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network - Bot Implementation
2021-08-27 14:56:35 -04:00
Luis Fernando Molina db9ec0194b Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-27 20:54:20 +02:00
Luis Fernando Molina 4b719279ed Merge pull request #1579 from Superalgos/develop
Develop into Master: hot fix related to Tensor Flow dependencies.
2021-08-27 14:52:04 -04:00
Luis Fernando Molina 78ea072b9f Post.js supports Users and Bots 2021-08-27 20:50:53 +02:00
Julian Molina 577bf9ec83 Minor fixes 2021-08-27 20:37:04 +02:00
Luis Fernando Molina f36f1d2e29 Update botProfile.js 2021-08-27 20:03:03 +02:00
Luis Fernando Molina 7277c932fe User Profile Cleaned from Multi Media Posts concept 2021-08-27 19:42:05 +02:00
Julian Molina 8608836fe6 Building your profile WIP 2021-08-27 19:01:37 +02:00
Luis Fernando Molina cae033fb2f Merge pull request #1577 from PLuv/develop
ML: Pausing inclusion of @tensorflow/tfjs-node installation from setu…
2021-08-27 12:56:56 -04:00
Philip Love b644d21826 ML: Pausing inclusion of @tensorflow/tfjs-node installation from setup.js due to missing dependencies for Windows Users 2021-08-27 12:33:37 -04:00
Julian Molina 7b53e5d48b Merge pull request #1574 from julian-molina/develop
Contribution: Governance docs WIP
2021-08-27 17:21:22 +02:00
Julian Molina 07fe9557df Removing Github credentials from plugin workspace 2021-08-27 17:18:24 +02:00
Luis Fernando Molina f321a9663a Merge pull request #1576 from Luis-Fernando-Molina/develop
Contribution: Goveranance System: Auto Closing PRs to master.
2021-08-27 09:10:08 -04:00
Luis Fernando Molina ab98050ad1 Goveranance System: Auto Closing PRs to master. 2021-08-27 15:07:09 +02:00
Julian Molina e38d0c76d9 Building your profile WIP 2021-08-27 14:40:29 +02:00
Luis Fernando Molina b0ff4e57ad Merge pull request #1575 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network: Events Query implemented.
2021-08-27 08:37:40 -04:00
Luis Fernando Molina f997021c0d Superalgos Network: Events Query implemented. Deep Scan Bug Fixed #2 2021-08-27 14:34:42 +02:00
Luis Fernando Molina 72cf70617d Superalgos Network: Events Query implemented. Deep Scan Bug Fixed 2021-08-27 14:22:04 +02:00
Luis Fernando Molina fd3bddf540 Superalgos Network: Events Query implemented. 2021-08-27 14:17:12 +02:00
Julian Molina 5e763a4ce3 Governance docs WIP 2021-08-27 14:16:09 +02:00
Luis Fernando Molina 94a48d9008 Events Query without Filters 2021-08-27 13:42:27 +02:00
Luis Fernando Molina 96535a2dd4 Event Module Fixed, withoout unnecesary references 2021-08-27 12:49:28 +02:00
Luis Fernando Molina 777b57703a initialIndex simplified 2021-08-27 12:09:43 +02:00
Luis Fernando Molina 104499ab57 memory reorganized into maps and arrays 2021-08-27 11:18:18 +02:00
Luis Fernando Molina 658bfd2b0d Query Post Replies Implemented 2021-08-27 10:52:09 +02:00
Luis Fernando Molina 830a92c486 Merge pull request #1571 from harrellbm/develop
Finish Profile Tut and Add Basic Program walk through Tut
2021-08-27 03:25:06 -04:00
harrellbm 3e5b205de2 Finish Profile Tut and Add Basic Program walk through Tut 2021-08-26 16:12:47 -05:00
Julian Molina 5099ac6827 Merge pull request #1570 from julian-molina/develop
Contribution: Governance docs
2021-08-26 22:09:56 +02:00
Julian Molina a5fd41820b Governance docs 2021-08-26 22:06:44 +02:00
Julian Molina d1f58a7bfc Merge pull request #1569 from julian-molina/develop
Contribution: Profile updated
2021-08-26 18:53:16 +02:00
Julian Molina 1ced991ce4 Profile updated 2021-08-26 18:52:55 +02:00
Julian Molina 68020e7832 Merge pull request #1568 from julian-molina/develop
Contribution: Governance docs update
2021-08-26 18:52:26 +02:00
Julian Molina 61bfe8d130 Governance docs update 2021-08-26 18:49:20 +02:00
Luis Fernando Molina ff6c981863 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance: My Profile Adjusted
2021-08-26 12:39:33 -04:00
Luis Fernando Molina 4b0eb2b003 Governance: My Profile Adjusted 2021-08-26 18:39:22 +02:00
Luis Fernando Molina 4380c800a3 Merge pull request #1566 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network: First Queries Implemented
2021-08-26 12:37:17 -04:00
Luis Fernando Molina 2aa4eebc90 Governance: More Delegation 2021-08-26 18:37:02 +02:00
Luis Fernando Molina 685c2b30d6 Profile Posts Query Implemented 2021-08-26 18:20:07 +02:00
Luis Fernando Molina 3f2933699b Merge pull request #1564 from PLuv/develop
ML: Plugin Workspace name change per Julian's request
2021-08-26 11:17:29 -04:00
Julian Molina d5c5eaef1e Merge pull request #1565 from julian-molina/develop
Contribution: Updating julian-molina profile
2021-08-26 17:16:38 +02:00
Julian Molina 9ed09ccc14 Updating julian-molina profile 2021-08-26 17:16:04 +02:00
Philip Love e0be1236c1 ML: Plugin Workspace name change per Julian's request 2021-08-26 10:58:43 -04:00
Luis Fernando Molina dba49aa67d Profile Handle 2021-08-26 16:54:05 +02:00
Luis Fernando Molina 6c8f75d3e7 Queries 2021-08-26 16:44:39 +02:00
Julian Molina 0eead7634c Merge pull request #1563 from julian-molina/develop
Contribution: Governance Tutorial revision
2021-08-26 15:35:09 +02:00
Julian Molina 1c9ad8d48d Governance Tutorial revision 2021-08-26 15:34:41 +02:00
Julian Molina d655becef5 Merge pull request #1562 from julian-molina/develop
Contribution: Token Distribution Workspace clean up
2021-08-26 15:26:30 +02:00
Julian Molina d90e45c547 Token Distribution Workspace clean up 2021-08-26 15:24:59 +02:00
Julian Molina 450a98e910 Token Distribution Superalgos workspace 2021-08-26 14:50:18 +02:00
Luis Fernando Molina 99eead9640 Adding, Removing, Enabling and Deleting Bots 2021-08-26 13:04:44 +02:00
Luis Fernando Molina 9a4aadc14d Event Counters 2021-08-26 12:23:23 +02:00
Luis Fernando Molina 15489610c7 Changes in User Profile done by Profile Owner PLuv automatically merged by Superalgos.
User Profile Update: [PLuv]
2021-08-26 05:24:29 -04:00
Luis Fernando Molina c158a6756a Merge pull request #1559 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed when a plugin file is not found.
2021-08-26 05:23:58 -04:00
Luis Fernando Molina 5da911fe0f Bug Fixed when a plugin file is not found. 2021-08-26 11:23:28 +02:00
Luis Fernando Molina 3f2871acea Events Reactions Implemented 2021-08-26 10:48:31 +02:00
Philip Love b48a0e074c User Profile Update: [PLuv] 2021-08-26 04:07:16 -04:00
Luis Fernando Molina de2c1435fe Merge pull request #1556 from julian-molina/develop
Contribution: Final revision of Getting Started workspace
2021-08-26 03:56:00 -04:00
Luis Fernando Molina cee91ca686 Changes in User Profile done by Profile Owner cozed-gh automatically merged by Superalgos.
Contribution: Updated claims for [cozed-gh]
2021-08-26 03:53:50 -04:00
Luis Fernando Molina bc86fb1c42 Changes in User Profile done by Profile Owner ssplatt automatically merged by Superalgos.
update ssplatt profile
2021-08-26 03:53:46 -04:00
Luis Fernando Molina 0b86055c1b Merge pull request #1557 from harrellbm/develop
Update Profile Tutorial for adding Onboarding Programs
2021-08-26 03:50:08 -04:00
harrellbm ded48eb876 Update Profile Tutorial for adding Onboarding Programs 2021-08-25 16:23:08 -05:00
Julian Molina bb13b0921c Final revision of Getting Started workspace 2021-08-25 19:59:14 +02:00
Brett Taylor 206b4ca0e1 update ssplatt profile 2021-08-25 13:11:20 -04:00
cozed-gh d86de9d83b Updated claims for [cozed-gh] 2021-08-25 18:32:46 +02:00
Luis Fernando Molina 125360841d Merge pull request #1553 from Luis-Fernando-Molina/develop
Contribution: Governance Bug FIx : Plugin Workspace not Loading
2021-08-25 11:47:16 -04:00
Luis Fernando Molina 28a0e51cb5 Governance Bug FIx : Plugin Workspace not Loading 2021-08-25 17:44:44 +02:00
Luis Fernando Molina 1b5c479765 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-25 17:38:09 +02:00
Luis Fernando Molina d37ab6ced4 Merge pull request #1551 from teehanming/develop
9 icon update - governance icon
2021-08-25 11:38:01 -04:00
Luis Fernando Molina 5e2afac13c Merge pull request #1550 from cozed-gh/develop
Contribution: This is my first submission of User Profile [cozed-gh]
2021-08-25 11:37:22 -04:00
Luis Fernando Molina 979670a7aa Follow / Unfollow event types 2021-08-25 16:18:41 +02:00
teehanming 5f3023208e 9 icon update
7 new icon
2 changed
2021-08-25 21:58:56 +08:00
cozed-gh bc91882282 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-25 15:46:26 +02:00
Luis Fernando Molina 13dc420032 Merge pull request #1547 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed with Trading Engine Values not at angle
2021-08-25 07:55:50 -04:00
Luis Fernando Molina 1aad11a320 Bug Fixed Reading Balance from Blockchain - Retrying until get it 2021-08-25 13:54:58 +02:00
cozed-gh 3b76166015 This is my first submission of User Profile [cozed-gh] 2021-08-25 13:40:09 +02:00
cozed-gh ff95db85bb This is my first submission of User Profile [cozed-gh] 2021-08-25 13:09:58 +02:00
Luis Fernando Molina bd15139d1a Bug Fixed with Trading Engine Values not at angle 2021-08-25 12:37:17 +02:00
Luis Fernando Molina d6a27330ac Merge pull request #1546 from Luis-Fernando-Molina/develop
Contribution: Bug Fixes, comments
2021-08-25 06:19:52 -04:00
Luis Fernando Molina 3bc9179f08 Bug Fixes, comments 2021-08-25 12:16:40 +02:00
Luis Fernando Molina 4c6d9774df Merge pull request #1544 from Luis-Fernando-Molina/develop
Contribution: This is my contribution to Superalgos
2021-08-25 05:46:24 -04:00
Luis Fernando Molina c89fb16d10 Bug Fixes 2021-08-25 11:44:40 +02:00
Luis Fernando Molina 1a9b7ca592 This is my contribution to Superalgos 2021-08-25 09:42:58 +02:00
Luis Fernando Molina f6f333923f Merge pull request #1543 from Luis-Fernando-Molina/develop
Contribution: Cleaning Test Data
2021-08-25 03:38:39 -04:00
Luis Fernando Molina 10d12d6083 Cleaning Test Data 2021-08-25 09:38:01 +02:00
Luis Fernando Molina ba0d0e42bd Changes in User Profile done by Profile Owner ssplatt automatically merged by Superalgos.
This is my first submission of User Profile ssplatt
2021-08-25 03:33:56 -04:00
Luis Fernando Molina 0954bbc876 Merge pull request #1538 from julian-molina/develop
Contribution: Getting Started updates
2021-08-25 03:33:04 -04:00
Luis Fernando Molina a18618dcf4 Merge pull request #1539 from harrellbm/develop
Move Gov Tut to Gov Project and Update Token Workspace with new Profiles
2021-08-25 03:31:22 -04:00
Brett Taylor e68729e8c0 This is my first submission of User Profile ssplatt 2021-08-24 18:10:35 -04:00
harrellbm d017dde4fa Move Gov Tut to Gov Project and Update Token Workspace with new Profiles 2021-08-24 15:40:38 -05:00
Julian Molina 8060dc7499 Getting Started updates 2021-08-24 22:24:08 +02:00
Luis Fernando Molina 6407f87d6c Merge pull request #1537 from Luis-Fernando-Molina/develop
Contribution: Superalgos Network, first modules
2021-08-24 14:37:20 -04:00
Luis Fernando Molina 383b9f1368 Superalgos Network, first modules 2021-08-24 20:37:04 +02:00
Luis Fernando Molina d96d91049d Changes in User Profile done by Profile Owner teehanming automatically merged by Superalgos.
This is my first submission of User Profile teehanming
2021-08-24 11:09:24 -04:00
teehanming 3305bc5f10 This is my first submission of User Profile teehanming
:D
2021-08-24 22:55:22 +08:00
Luis Fernando Molina 0ac1ebe7cd Merge pull request #1535 from teehanming/develop
icon update
2021-08-24 10:08:44 -04:00
Tee Han Ming eed2016c6f Merge branch 'Superalgos:develop' into develop 2021-08-24 21:59:30 +08:00
teehanming b248527726 5 icon update - user profile
New: Community building programs, support program, voting program, user influencer

Changed: referral program
2021-08-24 21:54:46 +08:00
Luis Fernando Molina 17b493d0aa Merge pull request #1534 from Luis-Fernando-Molina/develop
Contribution: Governance: Validation 7: Blockchain Account Tests Completed
2021-08-24 08:12:44 -04:00
Luis Fernando Molina b2bac7e88a Governance: Validation 7: Blockchain Account Tests Completed 2021-08-24 14:11:45 +02:00
teehanming 3d50b62475 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-24 20:02:22 +08:00
Luis Fernando Molina 81d2e6ae72 Governance: Validation 7: Blockchain Account Test #1 2021-08-24 13:44:53 +02:00
Luis Fernando Molina 36b7584476 Merge pull request #1532 from Luis-Fernando-Molina/develop
Contribution: Governance: Validation 7: Blockchain Account
2021-08-24 07:42:32 -04:00
Luis Fernando Molina 1b0af59b81 Governance: Validation 7: Blockchain Account 2021-08-24 13:41:51 +02:00
Luis Fernando Molina ea761bd83d Merge pull request #1530 from Superalgos/develop
Develop into Master: Hot Fix Getting Started Plugin
2021-08-24 07:08:12 -04:00
Luis Fernando Molina d05cd589e8 Merge pull request #1529 from Superalgos/plugins-docs
Plugins docs
2021-08-24 07:04:41 -04:00
Luis Fernando Molina e3883024fe Merge pull request #1528 from julian-molina/develop
Contribution: Getting Started Tutorials Plugin Workspace
2021-08-24 07:03:04 -04:00
Julian Molina 34bf6aa604 Getting Started Tutorials Plugin Workspace 2021-08-24 13:00:30 +02:00
Luis Fernando Molina 98dfa77c0a Merge pull request #1527 from Luis-Fernando-Molina/develop
Contribution: Foundations / Client: Servers now inside the CL object.
2021-08-24 06:58:53 -04:00
Luis Fernando Molina f381eafe9d DeepScan bug fixes 2021-08-24 12:57:28 +02:00
Luis Fernando Molina 2f0c8ec695 Foundations / Client: Servers now inside the CL object. 2021-08-24 12:51:50 +02:00
Luis Fernando Molina 07c048e126 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Delegation
2021-08-24 06:11:52 -04:00
Luis Fernando Molina 30beda6da1 Delegation 2021-08-24 12:11:39 +02:00
Luis Fernando Molina a691435125 Changes in User Profile done by Profile Owner Smidy13 automatically merged by Superalgos.
This is my first submission of User Profile [Smidy13]
2021-08-24 06:08:07 -04:00
Luis Fernando Molina 08af36d308 Merge pull request #1525 from Luis-Fernando-Molina/develop
Contribution: Drafting the Suerpalgos Network
2021-08-24 06:07:43 -04:00
Luis Fernando Molina cc47c888c7 Drafting the Superalgos Network 2021-08-24 12:06:39 +02:00
Smidy13 259dfec08f This is my first submission of User Profile [Smidy13] 2021-08-24 21:48:10 +12:00
Smidy13 9e365463b5 Revert "This is my first submission of User Profile Smidy13"
This reverts commit af8c869a22.
2021-08-24 21:37:27 +12:00
Smidy13 af8c869a22 This is my first submission of User Profile Smidy13 2021-08-24 21:27:58 +12:00
Luis Fernando Molina f6cbbd00e9 Changes in User Profile done by Profile Owner PLuv automatically merged by Superalgos.
This is my first submission of User Profile [PLuvtech]
2021-08-24 04:20:43 -04:00
Philip Love 05dd5b4f6f Merge remote-tracking branch 'upstream/develop' into develop 2021-08-24 03:59:10 -04:00
Philip Love a928857db6 This is my first submission of User Profile [PLuvtech] 2021-08-24 03:57:38 -04:00
Luis Fernando Molina cfe425d67f Merge pull request #1521 from PLuv/develop
ML Beta V 1.0
2021-08-24 03:44:56 -04:00
Luis Fernando Molina 2e64c18e50 Merge pull request #1517 from fredericopitz/plugins-docs
Contribution: My Superalgos Review
2021-08-24 03:43:28 -04:00
Luis Fernando Molina 1a662290e5 Merge pull request #1520 from thaissmolina75/plugins-docs
Contribution: install new market tut spanish change to develop branch
2021-08-24 03:40:32 -04:00
Luis Fernando Molina 1c318e7685 Merge pull request #1510 from quantum8/develop
Add files via upload
2021-08-24 03:40:02 -04:00
Luis Fernando Molina 5ab6c51f1e Merge pull request #1519 from harrellbm/develop
Update Harrell Profile and Add Feature claim (also update readme shields)
2021-08-24 03:38:17 -04:00
Philip Love 54cb7115e5 Satisfy some github error checks 2021-08-24 02:28:28 -04:00
Philip Love 6cf0f8f224 Update: TensorFlow_Project_Todos 2021-08-24 02:08:14 -04:00
Philip Love 7526043856 Update: TensorFlow_Project_Todos 2021-08-24 01:46:02 -04:00
Philip Love 328d52a146 ML: Beta_V_1.0: NOTE: Projects/TensorFlow/TensorFlow_Project_Todos 2021-08-24 01:35:29 -04:00
Philip Love 154519cf1b ML: Add- Additional ML App-Schemas / nodes 2021-08-24 01:03:08 -04:00
Philip Love 839e8f7243 ML- Modified App-Schemas - Multiple adjustments to previously existing ML App-Schemas 2021-08-24 00:59:37 -04:00
Philip Love a5287682d0 ML- Modified: Plugins- Engine && Mines ; Update: Package.json change tfjs-node Version ; rm unnecessary App-Schema 2021-08-24 00:56:11 -04:00
quantum8 37ab531cf2 Merge branch 'Superalgos:develop' into develop 2021-08-24 13:20:10 +10:00
thaissmolina75 88c2f0f5f5 install new market tut spanish change to develop branch 2021-08-23 19:04:44 -04:00
harrellbm a9b0bd577e Update Harrell Profile and Add Feature claims 2021-08-23 15:20:35 -05:00
B Harrell 88029fa467 Merge branch 'Superalgos:develop' into develop 2021-08-23 14:17:46 -05:00
Julian Molina 686360ce39 Merge pull request #1518 from julian-molina/develop
Contribution: Building profile revision
2021-08-23 16:02:43 +02:00
Julian Molina 3903b2d5ce Building profile revision 2021-08-23 16:01:10 +02:00
Frederic Opitz f85fbaecbc Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-08-23 15:44:53 +02:00
Luis Fernando Molina 75deb00d1e Merge pull request #1514 from Ceekay0/plugins-docs
Contribution: This is my contribution to Superalgos
2021-08-23 06:47:25 -04:00
Luis Fernando Molina 50419aea1f Merge pull request #1515 from Superalgos/plugins-docs
Plugins docs
2021-08-23 06:45:18 -04:00
Chris addfe79b5f This is my contribution to Superalgos 2021-08-23 11:08:29 +02:00
Luis Fernando Molina 5e5f37cd11 Merge pull request #1512 from Luis-Fernando-Molina/develop
Contribution: Forced collapse of user Profiles
2021-08-23 05:02:02 -04:00
Luis Fernando Molina f2d130e2c4 Forced collapse of user Profiles. DeepScan bug fixed 2021-08-23 10:36:59 +02:00
Luis Fernando Molina 2ae97b6d0e Forced collapse of user Profiles 2021-08-23 10:26:07 +02:00
Luis Fernando Molina a7f3f75ca8 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance: delegation
2021-08-23 04:13:11 -04:00
Luis Fernando Molina ea0e9eab23 Governance: delegation 2021-08-23 10:12:13 +02:00
Chris 23792bdc13 Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-08-23 09:52:02 +02:00
quantum8 2d01f1a7cb Add files via upload
Fix to correct lagging span variable for ichimoku indicator
2021-08-23 15:06:33 +10:00
Luis Fernando Molina c7d3cd7c3b Merge pull request #1509 from julian-molina/develop
Contribution: Update Luis and Julian
2021-08-22 16:12:42 -04:00
B Harrell 836846c0f9 Update readme shields
Remove broken shield and update with new
2021-08-22 13:31:58 -05:00
Julian Molina eeb47fac23 Update Luis and Julian 2021-08-22 19:07:55 +02:00
Luis Fernando Molina 69610d08b8 Merge pull request #1508 from julian-molina/develop
Contribution: Luis and Julian profiles plus details
2021-08-22 13:00:48 -04:00
Julian Molina e8840ebb00 Luis and Julian profiles plus details 2021-08-22 18:55:43 +02:00
Luis Fernando Molina a682ddabda Merge pull request #1506 from harrellbm/develop
Profile Creation Tutorial finished Revision 1
2021-08-22 02:09:28 -04:00
Luis Fernando Molina 9fe7a411d5 Merge pull request #1507 from thaissmolina75/plugins-docs
Contribution: intro to trading sys tut spanish trans
2021-08-22 02:06:18 -04:00
teehanming ab69ca30e4 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-22 11:25:37 +08:00
thaissmolina75 7c86eaf665 intro to trading sys tut spanish trans 2021-08-21 22:19:51 -04:00
Brenden Harrell aee5e65dff Fix Step Configs 2021-08-21 17:46:02 -05:00
Brenden Harrell 583f367d9d Finish Profile Creation Tut revision 1 2021-08-21 17:40:58 -05:00
Luis Fernando Molina 57059ba2f1 Merge pull request #1505 from thaissmolina75/plugins-docs
Contribution: hello world tut spanish finished
2021-08-21 17:45:09 -04:00
thaissmolina75 548f2c233b hello world tut spanish finished 2021-08-21 17:28:49 -04:00
Luis Fernando Molina 1024de7d05 Merge pull request #1504 from Luis-Fernando-Molina/develop
Contribution: Governance: Bug Fixes with References Lost.
2021-08-21 16:59:47 -04:00
Luis Fernando Molina 65e5046af8 Governance: Bug Fixes with References Lost. 2021-08-21 22:56:37 +02:00
Luis Fernando Molina 30a552da36 Merge pull request #1503 from julian-molina/develop
Contribution: Updating governance plugins
2021-08-21 14:08:12 -04:00
Luis Fernando Molina 78f8d97563 Merge pull request #1502 from PLuv/develop
Pluvtech Mine : Added: Mesa Adaptive Moving Average + Percentages which is just a per…
2021-08-21 14:07:48 -04:00
Julian Molina 1c0a147fa4 Updating governance plugins 2021-08-21 19:52:45 +02:00
Julian Molina 473be41ab8 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-21 19:52:27 +02:00
Philip Love e5291af6ea Added: Mesa Adaptive Moving Average + Percentages which is just a percentage difference calculator for the TF sample Workspace. Docs to Be added later for MAMA-FAMA indicator 2021-08-21 12:47:17 -04:00
Luis Fernando Molina bf75433755 Merge pull request #1501 from harrellbm/develop
More work on Profile Tut
2021-08-21 11:28:15 -04:00
Brenden Harrell a98d16652b More work on Profil Tut 2021-08-21 10:05:41 -05:00
Luis Fernando Molina 93ad473a7d Merge pull request #1500 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fixed without Github Credentials
2021-08-21 09:40:32 -04:00
Luis Fernando Molina f4b794c8db Governance Bug Fixed without Github Credentials 2021-08-21 15:40:18 +02:00
Julian Molina a5380e59da Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-21 15:25:44 +02:00
Luis Fernando Molina 8834d1e55d Merge pull request #1499 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fixed. Reputation not loading while switching workspaces
2021-08-21 08:32:57 -04:00
Luis Fernando Molina 6a4b14dfc6 Governance Bug Fixed. Reputation not loading while switching workspaces 2021-08-21 14:31:01 +02:00
Julian Molina f697e02849 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-21 12:12:02 +02:00
Julian Molina 25c4ca5117 Marketing updates 2021-08-21 10:34:54 +02:00
Luis Fernando Molina 518e780104 Merge pull request #1496 from Gallymojo/develop
Rectify missing configuration file errors in Zeus and Sparta indicators
2021-08-21 04:06:58 -04:00
Luis Fernando Molina 5d0cd1ecdc Merge pull request #1497 from Smidy13/develop
Improvement: Add Crypto Ecosystem to Other Hierarchies
2021-08-21 04:04:51 -04:00
Luis Fernando Molina 1a0d90f0a6 Merge pull request #1498 from Luis-Fernando-Molina/develop
Contribution: Foundations: Bug Fixed getNextNodeFromPath Fails when the Node Schema can not be found.
2021-08-21 04:01:38 -04:00
Luis Fernando Molina e227f3afe1 Foundations: Bug Fixed getNextNodeFromPath Fails when the Node Schema can not be found. 2021-08-21 10:00:15 +02:00
Smidy13 3016b05731 Improvement: Add Crypto Ecosystem to Other Hierachies 2021-08-21 17:36:21 +12:00
Gallymojo 3ddda6203e Update Sparta.json 2021-08-20 22:23:39 +08:00
Gallymojo d82c50fb79 Update Zeus.json 2021-08-20 22:14:24 +08:00
Gallymojo 951632f453 Merge branch 'develop' of https://github.com/Gallymojo/Superalgos into develop 2021-08-20 22:10:14 +08:00
teehanming 53d830e3ee Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-20 14:45:16 +08:00
thaissmolina75 1b840f97e2 Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-08-19 21:42:26 -04:00
Luis Fernando Molina 0c83eb95db Merge pull request #1494 from Luis-Fernando-Molina/develop
Contribution: Governance: Token Distribution command gov.pay implemented and tested.
2021-08-19 13:26:20 -04:00
Luis Fernando Molina 9199a70e4b Governance: Token Distribution command gov.pay implemented and tested. 2021-08-19 19:24:42 +02:00
Luis Fernando Molina 76ad9802b0 Merge pull request #1492 from Luis-Fernando-Molina/develop
Contribution: Governance: Pancake Swap Listing Votes
2021-08-19 06:49:59 -04:00
Luis Fernando Molina 85465159e5 Governance: Superalgos Pools Weights Reviewed 2021-08-19 12:43:09 +02:00
Luis Fernando Molina 7848e7c0b8 Governance: Pancake Swap Listing Votes 2021-08-19 11:59:23 +02:00
Frederic Opitz 3a99c29028 This is my contribution to Superalgos 2021-08-19 11:43:53 +02:00
Gallymojo 173442f714 Update Zeus.json 2021-08-19 17:01:22 +08:00
Luis Fernando Molina 42a0757862 Merge pull request #1490 from Luis-Fernando-Molina/develop
Contribution: Webhooks Bug Fixed
2021-08-19 04:42:20 -04:00
Luis Fernando Molina fbbf18e9f4 Webhooks Bug Fixed 2021-08-19 10:41:05 +02:00
Luis Fernando Molina 228c102ffc Merge pull request #1489 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fixed with #2 appearing at Bonus
2021-08-19 04:12:26 -04:00
Luis Fernando Molina b1bb4b4bcf Merge pull request #1488 from thaissmolina75/plugins-docs
Contribution: This is my contribution to Superalgos
2021-08-19 04:12:06 -04:00
Luis Fernando Molina 7ee7235d1e Governance Bug Fixed with #2 appearing at Bonus 2021-08-19 10:08:55 +02:00
thaissmolina75 38e464edaf Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-08-18 22:41:26 -04:00
thaissmolina75 e9fff1231d This is my contribution to Superalgos 2021-08-18 22:25:29 -04:00
Luis Fernando Molina e70d1ae765 Merge pull request #1487 from Raplh2502/develop
Contribution: This is my contribution to Superalgos
2021-08-18 17:13:42 -04:00
Raplh2502 d971925dd5 This is my contribution to Superalgos 2021-08-18 22:09:36 +01:00
Luis Fernando Molina 0853baa2dd Merge pull request #1486 from Luis-Fernando-Molina/develop
Contribution: Governance Votes Report Fixed
2021-08-18 16:46:27 -04:00
Luis Fernando Molina dab1361cf5 Governance Votes Report Fixed 2021-08-18 22:44:07 +02:00
Luis Fernando Molina 62c06a221a Merge pull request #1483 from Luis-Fernando-Molina/develop
Contribution: Governance: Reputation Concept Implemented
2021-08-18 16:17:55 -04:00
Luis Fernando Molina b08d969d25 Merge pull request #1485 from Superalgos/plugins-docs
Plugins docs into Develop
2021-08-18 16:16:26 -04:00
Luis Fernando Molina bb0a325a71 Merge pull request #1484 from Superalgos/develop
Develop into Plugins Docs
2021-08-18 16:15:23 -04:00
Luis Fernando Molina 1cd90530e8 Governance: Reputation Concept Implemented 2021-08-18 22:13:35 +02:00
Chris b7205320e3 My Superalgos Review 2021-08-18 19:58:26 +02:00
Luis Fernando Molina 7571f8daec Merge pull request #1479 from Luis-Fernando-Molina/develop
Contribution: Governance: Mnemonic import implemented for creating profile.
2021-08-18 06:33:26 -04:00
Luis Fernando Molina 8cd31c844d Governance: Mnemonic import implemented for creating profile. DeepScan Bug Fixed 2021-08-18 12:20:43 +02:00
Luis Fernando Molina a42a4c025c Governance: Mnemonic import implemented for creating profile. 2021-08-18 12:17:29 +02:00
Luis Fernando Molina 0d2d91ef09 Merge pull request #1478 from Raplh2502/develop
Contribution: Release of Better sine wave indicator with 2 Low-pass filter distance (36/6, 6/6) and finalization on he plotter bot with blue for 36 and red for 6, zero line and overbought/oversell levels
2021-08-18 03:22:29 -04:00
Raplh2502 06c81cf52b Release of Better sine wave indicator with 2 Low-pass filter distance (36/6, 6/6) and finalization on he plotter bot with blue for 36 and red for 6, zero line and overbought/oversell levels 2021-08-17 23:08:03 +01:00
Luis Fernando Molina 8f9fe4fdb8 Merge pull request #1477 from harrellbm/develop
Finish first Part of Creating Profile Tutorial
2021-08-17 16:19:27 -04:00
harrellbm 5dd96a55d4 Finish first Part of Profile tut 2021-08-17 15:03:07 -05:00
Luis Fernando Molina d36b7956b1 Merge pull request #1474 from harrellbm/develop
Initial work on User Profile Tutorial
2021-08-17 14:32:49 -04:00
Luis Fernando Molina 5daa0b0bea Changes in User Profile done by Profile Owner Raplh2502 automatically merged by Superalgos.
Contribution: Submission of Raplh2502 governance profile (Thomas)
2021-08-17 14:31:53 -04:00
Luis Fernando Molina 1483043e66 Merge pull request #1475 from Smidy13/develop
Bug Fix: Adding in iconProject to fix broken CircularMenuItems
2021-08-17 14:28:39 -04:00
Smidy13 95a7f9e9b3 Bug Fix: Adding in iconProject to fix broken CircularMenuItems 2021-08-17 17:39:05 +12:00
Brenden Harrell 2d249162b9 Start on tutorial hierarchy 2021-08-16 21:39:08 -05:00
Brenden Harrell f488cb0adc More profile tut work 2021-08-16 21:37:20 -05:00
harrellbm 1c4c7b6d1c First few plugin tut pages 2021-08-16 15:58:59 -05:00
Raplh2502 649dd52d77 Adding Raplh2502 profile (Thomas) to governance system 2021-08-16 21:14:59 +01:00
Luis Fernando Molina 005236d886 Merge pull request #1468 from thaissmolina75/plugins-docs
Contribution: setting up new chart tut touch up
2021-08-14 11:49:05 -04:00
teehanming 3da957018c governance - 1 icon update
changed: tokens-bonus
2021-08-14 14:01:43 +08:00
thaissmolina75 d7d8b1e4c5 setting up new chart tut touch up 2021-08-13 22:06:05 -04:00
Luis Fernando Molina a39a86b73d Changes in User Profile done by Profile Owner harrellbm automatically merged by Superalgos.
Contribution: This is my contribution to Superalgos
2021-08-13 11:04:02 -04:00
Brenden Harrell 5872e4bac0 This is my contribution to Superalgos 2021-08-13 09:54:08 -05:00
Luis Fernando Molina 9c8b4a650a Merge pull request #1466 from Superalgos/develop
Develop into Master: My Workspaces empty Bug Fixed
2021-08-13 09:50:45 -04:00
Luis Fernando Molina fa85806ba5 Merge pull request #1465 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed: My Workspaces not showing anything at first run.
2021-08-13 09:44:20 -04:00
Luis Fernando Molina f06298e3c3 Bug Fixed: My Workspaces not showing anything at first run. 2021-08-13 15:43:48 +02:00
Luis Fernando Molina 528fc1dcbb Merge pull request #1464 from Superalgos/develop
Develop into Master: Bug Fixed Tutorial not opening.
2021-08-13 09:25:20 -04:00
Luis Fernando Molina a254044d3d Merge pull request #1460 from Raplh2502/develop
Contribution: cleaning of useless material in Quasar data mine ; adding prototype of Better Sine Wave indicator
2021-08-13 09:24:31 -04:00
Luis Fernando Molina 6b4ebaf9b5 Merge pull request #1461 from harrellbm/develop
Load Getting started with open tutorial
2021-08-13 09:23:44 -04:00
Brenden Harrell 68fb354ee9 Load Getting started with open tutorial 2021-08-12 15:41:01 -05:00
Raplh2502 eca3763f4f cleaning of useless material in Quasar data mine ; adding prototype of Better Sine Wave indicator 2021-08-12 20:08:39 +01:00
Luis Fernando Molina 34fc53c8d1 Merge pull request #1456 from Superalgos/develop
Develop into Master
2021-08-12 00:57:36 -04:00
Luis Fernando Molina 97790e3b2c Merge pull request #1457 from Luis-Fernando-Molina/develop
Contribution: Token Distribution Superalgos Plugin Workspace Fixed
2021-08-12 00:52:13 -04:00
Luis Fernando Molina ea595d9d42 Deep Scan Bug Fixes 2021-08-12 06:51:40 +02:00
Luis Fernando Molina 1e3fc8baf4 Token Distribution Superalgos Plugin Workspace Fixed 2021-08-12 06:46:19 +02:00
Luis Fernando Molina 3ec7ce333f Merge pull request #1455 from thaissmolina75/plugins-docs
Contribution: setting up new chart tutorial spanish trans
2021-08-12 00:33:39 -04:00
thaissmolina75 2e6a7a99ac setting up new chart tutorial spanish trans finished 2021-08-11 21:51:49 -04:00
thaissmolina75 a695d25e69 setting up new chart tutorial spanish trans 2021-08-11 08:20:22 -04:00
Julian Molina e890c02313 Merge pull request #1453 from julian-molina/develop
Contribution: Revised README
2021-08-10 21:30:07 +02:00
Julian Molina 348367968c Revised README 2021-08-10 21:27:48 +02:00
Julian Molina fc1c1164c7 Revised README 2021-08-10 21:24:01 +02:00
Julian Molina 11c1437ce6 Merge pull request #1451 from julian-molina/develop
Contribution: Probit Global Research update
2021-08-10 11:19:08 +02:00
Julian Molina 9b11bed4cf Probit Global Research update 2021-08-10 11:16:23 +02:00
Luis Fernando Molina e94b8e210d Merge pull request #1449 from teehanming/develop
governance - 3 icon update
2021-08-09 17:36:44 -04:00
Luis Fernando Molina b87236df92 Merge pull request #1450 from julian-molina/develop
Contribution: Probit exchange evaluation
2021-08-09 17:35:51 -04:00
Julian Molina bf32e4c6c9 LBank preliminary research 2021-08-09 22:09:19 +02:00
Julian Molina f78c3017eb Probit exchange evaluation 2021-08-09 20:37:26 +02:00
Tee Han Ming ac889bfa5b Merge branch 'Superalgos:develop' into develop 2021-08-10 01:58:20 +08:00
teehanming cee76fa119 governance - 4 icon update
new icon: airdrop-program, staking program
changed icon: tokens-mined
2021-08-10 01:56:40 +08:00
Luis Fernando Molina 5fc346e99b Merge pull request #1448 from Luis-Fernando-Molina/develop
Contribution: Goverance Github Server Validation 6 Fully Tested
2021-08-09 13:02:52 -04:00
Luis Fernando Molina d3144edf04 Goverance Github Server Validation 6 Fully Tested 2021-08-09 19:01:50 +02:00
Luis Fernando Molina 48edcef0a9 Goverance Github Server Validation 6 Test 3 2021-08-09 18:50:54 +02:00
Luis Fernando Molina aa6c162200 Merge pull request #1446 from Luis-Fernando-Molina/develop
Contribution: Goverance Github Server Validation 6 Test
2021-08-09 12:50:40 -04:00
Luis Fernando Molina 7343983db5 Goverance Github Server Validation 6 Test 2 2021-08-09 18:50:15 +02:00
Luis Fernando Molina 1225ca023c Goverance Github Server Validation 6 Test 2021-08-09 18:49:41 +02:00
Luis Fernando Molina 3d5ae7c4e0 Merge pull request #1445 from Luis-Fernando-Molina/develop
Contribution: Goverance Github Server Bug Fixed
2021-08-09 12:44:01 -04:00
Luis Fernando Molina 3d14b0b766 Goverance Github Server Bug Fixed 2021-08-09 18:43:35 +02:00
Luis Fernando Molina c3c368f513 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Goverance Github Server Test Validation 6
2021-08-09 12:39:37 -04:00
Luis Fernando Molina a02287cd39 Goverance Github Server Test Validation 6 2021-08-09 18:36:13 +02:00
Luis Fernando Molina 73cc66c7ee Merge pull request #1443 from Luis-Fernando-Molina/develop
Contribution: Docs Page fixed
2021-08-09 12:33:17 -04:00
Luis Fernando Molina 9253095281 Docs Page fixed 2021-08-09 18:32:49 +02:00
Luis Fernando Molina e81d4993bf Merge pull request #1442 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed ot Github Server
2021-08-09 12:30:13 -04:00
Luis Fernando Molina 98973eb80e Bug Fixed ot Github Server 2021-08-09 18:21:26 +02:00
Luis Fernando Molina a89e5957be Merge pull request #1440 from julian-molina/develop
Contribution: Exchange Listing Requirements Research update
2021-08-09 12:13:06 -04:00
Julian Molina 9fae9ab40f Moved listing requirements to Governance project 2021-08-09 16:37:11 +02:00
Julian Molina 90afe4f08d Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-09 15:08:31 +02:00
Julian Molina 6a4ed210d2 Exchange Listing Requirements Research update 2021-08-09 14:51:42 +02:00
Julian Molina f3e39682b8 Merge pull request #1438 from julian-molina/develop
Contribution: Minor governance docs update
2021-08-09 13:13:13 +02:00
Luis Fernando Molina 95dc638191 Merge pull request #1437 from Luis-Fernando-Molina/develop
Contribution: Governance: Validation 6 implemented: checking User Profile Id
2021-08-09 05:54:08 -04:00
Luis Fernando Molina 6a5bd747af Governance: Deep Scan bugs fixed 2021-08-09 11:53:15 +02:00
Julian Molina e8d0f25947 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-08-09 10:37:54 +02:00
Julian Molina 01544d03ef Minor governance docs update 2021-08-09 10:37:35 +02:00
Luis Fernando Molina 0bd721710d Governance: Validation 6 implemented: checking User Profile Id 2021-08-09 10:28:52 +02:00
Luis Fernando Molina d7d2cc62af Merge pull request #1436 from harrellbm/develop
Fix: Add handle for Saved Path Hierarchy Head not found
2021-08-09 02:49:21 -04:00
Brenden Harrell d594a79e25 Fix: Add handle for Saved Path Hierarchy Head not found 2021-08-08 21:52:28 -05:00
Luis Fernando Molina 2855fb6bc5 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance: Validation #5 test part 3
2021-08-08 09:33:03 -04:00
Luis Fernando Molina c2372e66af Governance: Validation #5 test part 3 2021-08-08 15:32:52 +02:00
Luis Fernando Molina 3f42fc5d65 Merge pull request #1434 from Luis-Fernando-Molina/develop
Contribution: Governance: Validation #5 test part 2
2021-08-08 09:32:16 -04:00
Luis Fernando Molina 0fc35f0dc2 Governance: Validation #5 test part 2 2021-08-08 15:31:08 +02:00
Luis Fernando Molina 0acdd6e04c Governance: Validation #5 test 2021-08-08 14:55:40 +02:00
Luis Fernando Molina ae4308f0fa Merge pull request #1432 from Luis-Fernando-Molina/develop
Contribution: Governance: Simplification of the Process to create a Profile
2021-08-08 08:52:56 -04:00
Luis Fernando Molina 513738a22d Governance: Simplification of the Process to create a Profile 2021-08-08 14:50:33 +02:00
Luis Fernando Molina ac03592101 Merge pull request #1431 from Luis-Fernando-Molina/develop
Contribution: Client Github Server Implementation
2021-08-08 08:10:20 -04:00
Luis Fernando Molina 37d70849ec Client Github Server Implementation 2021-08-08 14:08:17 +02:00
Luis Fernando Molina 6d67490942 Merge pull request #1430 from teehanming/develop
governance - 7 icons update
2021-08-08 07:21:47 -04:00
teehanming b69cca3647 governance icon update
added 7 icons : github-program, influencer-program, mentorship-program, referral-program, tokens-awarded, tokens-bonus, tokens-mined
2021-08-08 19:01:20 +08:00
Luis Fernando Molina 0799f3c444 Merge pull request #1429 from Superalgos/develop
Develop into Master
2021-08-08 03:57:50 -04:00
Luis Fernando Molina 418efe032c Merge pull request #1428 from Superalgos/develop
Develop into Plugins Docs
2021-08-08 03:56:38 -04:00
Luis Fernando Molina b61da487a5 Merge pull request #1427 from Superalgos/plugins-docs
Plugins docs into Develop
2021-08-08 03:55:34 -04:00
Luis Fernando Molina e9f0a95930 Merge pull request #1426 from harrellbm/develop
Update Getting Started, Plugins topic, and Plugins
2021-08-08 03:54:41 -04:00
Luis Fernando Molina f0fa91914e Merge pull request #1425 from teehanming/develop
asset- coin icon update
2021-08-08 03:52:52 -04:00
Brenden Harrell 11330b7a47 Remove random console warning 2021-08-07 19:17:43 -05:00
Brenden Harrell ba66b987e2 Final updates for getting started and plugins 2021-08-07 18:41:31 -05:00
B Harrell e64b09213b Merge branch 'Superalgos:develop' into develop 2021-08-07 18:37:15 -05:00
teehanming 4faeb8c5b9 Merge branch 'Superalgos:develop' into develop 2021-08-08 03:39:11 +08:00
teehanming 3313dc74f5 asset- coin icon update
new icon : sol, dot, uni, busd, sxp, link, eur
changed icon: bnb, us-dollar
2021-08-08 03:36:34 +08:00
Brenden Harrell 1c8d63f3fd Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-08-07 12:39:45 -05:00
Brenden Harrell 6bab2dd21c first pass at cleaning and updating getting started workspace 2021-08-07 12:25:18 -05:00
Luis Fernando Molina 5cf159586c Merge pull request #1424 from Luis-Fernando-Molina/develop
Contribution: Governance: Bug Fixed on auto merging from other branches different to develop 2
2021-08-07 12:51:35 -04:00
Luis Fernando Molina 6774e7b359 Governance: Bug Fixed on auto merging from other branches different to develop 2 2021-08-07 18:50:22 +02:00
Luis Fernando Molina 256a412b7c Governance: Bug Fixed on auto merging from other branches different to develop 2021-08-07 18:46:48 +02:00
Luis Fernando Molina 36e0d763f5 Governance: Bug Fixed on auto merging from other branches different to develop 2021-08-07 18:45:53 +02:00
Luis Fernando Molina 998d630b4b Governance: Test Contributing to Plugins Docs 2021-08-07 18:39:55 +02:00
Luis Fernando Molina 81b20ea2ee Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance: Automatic Merging of PRs for User Profiles changes. Bug Fixed.5
2021-08-07 12:36:19 -04:00
Luis Fernando Molina 3f13b84a79 Governance: Automatic Merging of PRs for User Profiles changes. Bug Fixed.5 2021-08-07 18:35:08 +02:00
Luis Fernando Molina 7673ce76b2 Merge pull request #1420 from Luis-Fernando-Molina/develop
Contribution: Governance: Automatic Merging of PRs for User Profiles changes. Bug Fixed.4
2021-08-07 12:34:36 -04:00
Luis Fernando Molina ef859348fb Governance: Automatic Merging of PRs for User Profiles changes. Bug Fixed.4 2021-08-07 18:33:25 +02:00
Luis Fernando Molina 1ce7a69bbc Governance: Automatic Merging of PRs for User Profiles changes. Bug Fixed.3 2021-08-07 18:31:26 +02:00
Luis Fernando Molina 23fa8cd932 Governance: Automatic Merging of PRs for User Profiles changes. Bug Fixed. 2 2021-08-07 18:21:21 +02:00
Luis Fernando Molina ddf24dcc87 Revert "Governance: Automatic Merging of PRs for User Profiles changes. Bug Fixed."
This reverts commit 4f56770b56.
2021-08-07 18:18:48 +02:00
Luis Fernando Molina 0f71e715e9 Revert "Changes in Marina User Profile"
This reverts commit c990670bbb.
2021-08-07 18:18:28 +02:00
Luis Fernando Molina 4f56770b56 Governance: Automatic Merging of PRs for User Profiles changes. Bug Fixed. 2021-08-07 18:16:49 +02:00
Luis Fernando Molina 43a396e471 Governance: Automatic Merging of PRs for User Profiles changes. 2021-08-07 18:15:35 +02:00
Luis Fernando Molina c990670bbb Changes in Marina User Profile 2021-08-07 18:05:29 +02:00
Luis Fernando Molina 4dc02731df Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Update Testing gov.prs 18
2021-08-07 12:03:00 -04:00
Luis Fernando Molina c40f425797 Governance Update Testing gov.prs 18 2021-08-07 18:02:42 +02:00
Luis Fernando Molina 6e6cf09f6e Merge pull request #1414 from Luis-Fernando-Molina/develop
Contribution: Governance Update Testing gov.prs 17
2021-08-07 12:02:01 -04:00
Luis Fernando Molina e7cd1702cc Governance Update Testing gov.prs 17 2021-08-07 18:00:57 +02:00
Luis Fernando Molina c7488b9155 Governance Update Testing gov.prs 16 2021-08-07 17:54:01 +02:00
Luis Fernando Molina 8f2caba4a5 Governance Update Testing gov.prs 15 2021-08-07 17:46:29 +02:00
Luis Fernando Molina dbb723daac Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Update Testing gov.prs 14
2021-08-07 09:37:10 -04:00
Luis Fernando Molina 5cb1e63e69 Governance Update Testing gov.prs 14 2021-08-07 15:36:35 +02:00
Luis Fernando Molina 7f23ed50f6 Governance Update Testing gov.prs 13 2021-08-07 15:33:27 +02:00
Luis Fernando Molina 2ab9e02d3c Merge pull request #1409 from Luis-Fernando-Molina/develop
Contribution: Governance Update Testing gov.prs 12
2021-08-07 09:33:07 -04:00
Luis Fernando Molina e515d88a0b Governance Update Testing gov.prs 12 2021-08-07 15:32:13 +02:00
Luis Fernando Molina 12b08f546a Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Update Testing gov.prs 11
2021-08-07 09:29:28 -04:00
Luis Fernando Molina 5c13d0bc55 Governance Update Testing gov.prs 11 2021-08-07 15:29:05 +02:00
Luis Fernando Molina e97d484e38 Merge pull request #1407 from Luis-Fernando-Molina/develop
Contribution: Governance Update Testing gov.prs 10
2021-08-07 09:28:32 -04:00
Luis Fernando Molina a6014ebc79 Governance Update Testing gov.prs 10 2021-08-07 15:27:27 +02:00
Luis Fernando Molina f9f480e814 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Update Testing gov.prs 9
2021-08-07 09:15:14 -04:00
Luis Fernando Molina 1caa07032e Governance Update Testing gov.prs 9 2021-08-07 15:14:57 +02:00
Luis Fernando Molina 877c4c6039 Merge pull request #1405 from Luis-Fernando-Molina/develop
Contribution: Governance Update Testing gov.prs 8
2021-08-07 09:13:34 -04:00
Luis Fernando Molina 974112e619 Governance Update Testing gov.prs 8 2021-08-07 15:13:17 +02:00
Luis Fernando Molina 1a26c64e61 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Update Testing gov.prs 7
2021-08-07 09:08:03 -04:00
Luis Fernando Molina d9e6df8251 Governance Update Testing gov.prs 7 2021-08-07 15:07:25 +02:00
Luis Fernando Molina 2256722096 Merge pull request #1403 from Luis-Fernando-Molina/develop
Contribution: Governance Update Testing gov.prs 6
2021-08-07 09:07:04 -04:00
Luis Fernando Molina 1a01996ff4 Governance Update Testing gov.prs 6 2021-08-07 15:05:51 +02:00
Luis Fernando Molina dd27034dc3 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Update Testing gov.prs 5
2021-08-07 08:52:51 -04:00
Luis Fernando Molina d9026e7505 Governance Update Testing gov.prs 5 2021-08-07 14:52:38 +02:00
Luis Fernando Molina 621a72c333 Governance Update Testing gov.prs 5 2021-08-07 14:51:11 +02:00
Luis Fernando Molina b433d9e68e Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Update Testing gov.prs 4
2021-08-07 08:48:52 -04:00
Luis Fernando Molina 42df2960ad Governance Update Testing gov.prs 4 2021-08-07 14:48:24 +02:00
Luis Fernando Molina 257bd207ee Merge pull request #1400 from Luis-Fernando-Molina/develop
Contribution: Governance Update Testing gov.prs 3
2021-08-07 08:48:09 -04:00
Luis Fernando Molina e011f1a4ad Governance Update Testing gov.prs 3 2021-08-07 14:47:14 +02:00
Luis Fernando Molina 77abe49c7a Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance Update Testing gov.prs
2021-08-07 08:45:27 -04:00
Luis Fernando Molina 887277f3d1 Governance Update Testing gov.prs 2021-08-07 14:45:04 +02:00
Luis Fernando Molina ff11ca0582 Merge pull request #1398 from Luis-Fernando-Molina/develop
Contribution: Governance Update Testing gov.prs
2021-08-07 08:44:44 -04:00
Luis Fernando Molina 92722e2691 Governance Update Testing gov.prs 2021-08-07 14:42:04 +02:00
Luis Fernando Molina ee1041d969 Changes in User Profile done by Profile Owner Luis-Fernando-Molina automatically merged by Superalgos.
Contribution: Governance My Profile Update
2021-08-07 08:20:42 -04:00
Luis Fernando Molina 972cb4291d Governance My Profile Update 2021-08-07 14:18:19 +02:00
Luis Fernando Molina 6a41e52024 Merge pull request #1396 from Luis-Fernando-Molina/develop
Contribution: Governance gov.PRs command implemented at the Client
2021-08-07 08:17:46 -04:00
Luis Fernando Molina 41c0061aa0 Governance DeepScan bugs fixed 2021-08-07 14:16:22 +02:00
Luis Fernando Molina 53b960b546 Governance Bug Fixed gov.prs command 2021-08-07 13:57:18 +02:00
Luis Fernando Molina 925df2e54e Governance gov.PRs command implemented at the Client 2021-08-07 13:45:07 +02:00
Luis Fernando Molina ac70d0e571 Merge pull request #1395 from teehanming/develop
xrp logo update
2021-08-07 03:36:25 -04:00
Luis Fernando Molina 2a839f6b07 Merge pull request #1394 from harrellbm/develop
Update Action Topic and Add Check for Missing References Action
2021-08-07 03:35:46 -04:00
teehanming 35952d05ff xrp logo update
update xrp logo to follow the standard
2021-08-07 13:10:51 +08:00
B Harrell 09c5f96d53 Merge branch 'Superalgos:develop' into develop 2021-08-06 21:52:01 -05:00
Brenden Harrell a5a9d933bf Implement Check for missing reference parent action 2021-08-06 21:51:25 -05:00
Brenden Harrell 9870d01354 Basic Reference Check Action Mapping 2021-08-06 09:46:53 -05:00
Brenden Harrell 3276c8b8b9 Update Action Docs topic 2021-08-06 09:46:27 -05:00
Luis Fernando Molina 3acb254e4f Merge pull request #1393 from Luis-Fernando-Molina/develop
Contribution: Governance: My claims placed and documented
2021-08-06 09:45:43 -04:00
Luis Fernando Molina 98bdd28afd Governance: My claims placed and documented 2021-08-06 15:44:15 +02:00
Luis Fernando Molina 546e055449 Merge pull request #1392 from Luis-Fernando-Molina/develop
Contribution: Governance: Claims Examples at the Docs
2021-08-06 07:56:58 -04:00
Luis Fernando Molina 65482f00db Governance: Claims Examples at the Docs 2021-08-06 13:55:44 +02:00
Luis Fernando Molina 03a293959e Merge pull request #1388 from Luis-Fernando-Molina/develop
Contribution: Governance Token Power Switch splitted in programs categories
2021-08-06 05:47:22 -04:00
Luis Fernando Molina 73db02b60d Governance Token Power Switch splitted in programs categories 2021-08-06 11:45:57 +02:00
Luis Fernando Molina cb24964f97 Merge pull request #1387 from thaissmolina75/plugins-docs
Contribution: beyond the basics tutorial spanish trans finished
2021-08-06 04:24:05 -04:00
thaissmolina75 6c0a4d3d36 beyond the basics tutorial spanish trans finished 2021-08-05 19:47:47 -04:00
Luis Fernando Molina ed75389ff4 Merge pull request #1386 from Luis-Fernando-Molina/develop
Contribution: Exchange Assets Topic implemented
2021-08-05 14:17:03 -04:00
Luis Fernando Molina 62cbf56fcb Exchange Assets Topic implemented 2021-08-05 20:15:51 +02:00
Luis Fernando Molina 9e4e622b89 Merge pull request #1385 from Luis-Fernando-Molina/develop
Contribution: Install as Plugin action implemented for User Profiles and others
2021-08-05 11:53:45 -04:00
Luis Fernando Molina a779dc4dbd Install as Plugin action implemented for User Profiles and others 2021-08-05 17:52:34 +02:00
Luis Fernando Molina 857379b440 Merge pull request #1384 from MarinitaMarina/develop
Contribution: my user profile
2021-08-05 09:19:48 -04:00
MarinitaMarina 2f0dd2795a My user profile changes 2021-08-05 15:11:19 +02:00
MarinitaMarina 0b3e27ed04 my user profile 2021-08-05 15:01:24 +02:00
Luis Fernando Molina 0049d2bab2 Merge pull request #1383 from Superalgos/master
Master into Develop
2021-08-05 08:13:37 -04:00
Luis Fernando Molina 763bf9be57 Merge pull request #1382 from Superalgos/develop
Develop into Master last minute fixes
2021-08-05 08:12:50 -04:00
Luis Fernando Molina ff44777c6d Merge pull request #1381 from Luis-Fernando-Molina/develop
Contribution:  REAME changes
2021-08-05 08:09:54 -04:00
Luis Fernando Molina fb3bb98d54 REAME changes 2021-08-05 14:09:18 +02:00
Luis Fernando Molina 70a93a4d34 Merge pull request #1376 from Superalgos/dependabot/npm_and_yarn/Client/web3-1.5.0
Bump web3 from 1.3.0 to 1.5.0 in /Client
2021-08-05 08:07:29 -04:00
dependabot[bot] 6c5d290835 Bump web3 from 1.3.0 to 1.5.0 in /Client
Bumps [web3](https://github.com/ethereum/web3.js) from 1.3.0 to 1.5.0.
- [Release notes](https://github.com/ethereum/web3.js/releases)
- [Changelog](https://github.com/ChainSafe/web3.js/blob/1.x/CHANGELOG.md)
- [Commits](https://github.com/ethereum/web3.js/compare/v1.3.0...v1.5.0)

---
updated-dependencies:
- dependency-name: web3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-05 12:06:49 +00:00
Luis Fernando Molina a1565e26e9 Merge pull request #1377 from Superalgos/dependabot/npm_and_yarn/Client/simple-git-2.42.0
Bump simple-git from 2.31.0 to 2.42.0 in /Client
2021-08-05 08:05:14 -04:00
Luis Fernando Molina e1981aef7c Merge pull request #1379 from Superalgos/dependabot/npm_and_yarn/Client/lookpath-1.2.2
Bump lookpath from 1.2.1 to 1.2.2 in /Client
2021-08-05 08:04:42 -04:00
dependabot[bot] a58ac9775b Bump lookpath from 1.2.1 to 1.2.2 in /Client
Bumps [lookpath](https://github.com/otiai10/lookpath) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/otiai10/lookpath/releases)
- [Commits](https://github.com/otiai10/lookpath/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: lookpath
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-05 12:03:33 +00:00
Luis Fernando Molina a2912919a1 Merge pull request #1380 from Luis-Fernando-Molina/develop
Contribution: Governance Superalgos Workspace all plugins added
2021-08-05 08:02:54 -04:00
Luis Fernando Molina 5776b7cd69 Merge pull request #1375 from Superalgos/dependabot/npm_and_yarn/Client/octokit/rest-18.9.0
Bump @octokit/rest from 18.0.12 to 18.9.0 in /Client
2021-08-05 08:02:41 -04:00
Luis Fernando Molina 9007f98ced Governance Superalgos Workspace all plugins added 2021-08-05 14:01:14 +02:00
dependabot[bot] 0668dc2d9e Bump simple-git from 2.31.0 to 2.42.0 in /Client
Bumps [simple-git](https://github.com/steveukx/git-js) from 2.31.0 to 2.42.0.
- [Release notes](https://github.com/steveukx/git-js/releases)
- [Changelog](https://github.com/steveukx/git-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/steveukx/git-js/compare/v2.31.0...v2.42.0)

---
updated-dependencies:
- dependency-name: simple-git
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-05 11:14:57 +00:00
dependabot[bot] 99dc44d896 Bump @octokit/rest from 18.0.12 to 18.9.0 in /Client
Bumps [@octokit/rest](https://github.com/octokit/rest.js) from 18.0.12 to 18.9.0.
- [Release notes](https://github.com/octokit/rest.js/releases)
- [Commits](https://github.com/octokit/rest.js/compare/v18.0.12...v18.9.0)

---
updated-dependencies:
- dependency-name: "@octokit/rest"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-05 11:13:07 +00:00
Luis Fernando Molina 718cc983e5 Merge remote-tracking branch 'origin/develop' 2021-08-05 13:08:08 +02:00
Luis Fernando Molina 2bb78c50fb Merge Develop into Master 2021-08-05 13:07:45 +02:00
Luis Fernando Molina 7bafbdfd59 Merge pull request #1374 from Superalgos/develop
Develop into Plugins Docs
2021-08-05 06:01:02 -04:00
Luis Fernando Molina 412d579048 Merge pull request #1373 from Superalgos/plugins-docs
Plugins docs into develop
2021-08-05 05:46:32 -04:00
Luis Fernando Molina ff178e3b05 Merge pull request #1372 from Luis-Fernando-Molina/develop
Contribution: Fixes at Readme file 5
2021-08-05 05:36:20 -04:00
Luis Fernando Molina aff2fb9b70 Fixes at Readme file 5 2021-08-05 11:36:05 +02:00
Luis Fernando Molina 5b456b6580 Merge pull request #1371 from Luis-Fernando-Molina/develop
Contribution: Fixes at Readme file 4
2021-08-05 05:30:51 -04:00
Luis Fernando Molina f7c7570d13 Fixes at Readme file 4 2021-08-05 11:30:39 +02:00
Luis Fernando Molina c22e765464 Merge pull request #1370 from Luis-Fernando-Molina/develop
Contribution: Fixes at Readme file 3
2021-08-05 05:25:08 -04:00
Luis Fernando Molina cbc9f7a034 Fixes at Readme file 3 2021-08-05 11:24:46 +02:00
Luis Fernando Molina 837451ab79 Merge pull request #1369 from Luis-Fernando-Molina/develop
Contribution: Fixes at Readme file 2
2021-08-05 05:17:40 -04:00
Luis Fernando Molina 730a9adccd Fixes at Readme file 2 2021-08-05 11:17:20 +02:00
Luis Fernando Molina 96db250251 Merge pull request #1368 from Luis-Fernando-Molina/develop
Contribution: Fixes at Readme file
2021-08-05 04:57:48 -04:00
Luis Fernando Molina 9e917c139e Fixes at Readme file 2021-08-05 10:57:17 +02:00
Luis Fernando Molina b623c88b9b Merge pull request #1367 from Luis-Fernando-Molina/develop
Contribution: Changes in Readme, INSTALL.md, and configurable docs page for any node.
2021-08-05 04:40:18 -04:00
Luis Fernando Molina 2d7ed1d085 Merge pull request #1366 from Superalgos/dependabot/npm_and_yarn/Client/tar-4.4.15
Bump tar from 4.4.13 to 4.4.15 in /Client
2021-08-05 04:39:23 -04:00
Luis Fernando Molina 59e65e6cfd Changes in Readme, INSTALL.md, and configurable docs page for any node. 2021-08-05 10:37:37 +02:00
dependabot[bot] 25e072b3b1 Bump tar from 4.4.13 to 4.4.15 in /Client
Bumps [tar](https://github.com/npm/node-tar) from 4.4.13 to 4.4.15.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v4.4.13...v4.4.15)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-05 02:49:35 +00:00
Luis Fernando Molina 8450425827 Merge pull request #1364 from harrellbm/develop
Optimize saved reference path
2021-08-04 02:55:24 -04:00
Luis Fernando Molina cbda84ce9a Merge pull request #1365 from thaissmolina75/plugins-docs
Contribution: basic tutorial finished!
2021-08-04 02:55:00 -04:00
thaissmolina75 a12baf0062 basic tutorial finished! 2021-08-03 23:05:14 -04:00
harrellbm 8e2d7232a1 Update code comments 2021-08-03 17:42:35 -05:00
harrellbm 873c7c41f1 remove console log 2021-08-03 17:40:26 -05:00
harrellbm 7abd313d9a Optimize saved reference path 2021-08-03 17:38:58 -05:00
Luis Fernando Molina 1c2c095fa9 Merge pull request #1336 from thaissmolina75/plugins-docs
Contribution: getting started tutorial touch up
2021-08-03 12:31:59 -04:00
thaissmolina75 1777628740 tutorial change 2021-08-03 12:30:40 -04:00
thaissmolina75 2f4e1e7e80 Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-08-03 12:30:01 -04:00
Luis Fernando Molina 1bfe81db25 Merge pull request #1346 from quantum8/plugins-docs
Plugins docs spelling fix
2021-08-03 12:18:30 -04:00
Luis Fernando Molina cf4f22d267 Merge pull request #1362 from harrellbm/develop
Harden Referencing
2021-08-03 12:17:26 -04:00
Luis Fernando Molina 8b8f7be6e0 Merge pull request #1359 from sschana/develop
Contribution: my user profile
2021-08-03 12:10:56 -04:00
Luis Fernando Molina d6715d1a27 Merge pull request #1360 from Bitstudiocoin/develop
Contribution: my user profile
2021-08-03 12:04:33 -04:00
Luis Fernando Molina 70cfd84837 Merge pull request #1361 from Lantschirky/develop
Contribution: My user profile
2021-08-03 05:51:40 -04:00
B Harrell 2006a5dcbc Merge branch 'Superalgos:develop' into develop 2021-08-02 22:03:58 -05:00
Brenden Harrell 9f7da1e5a1 Harden Referencing protocal 2021-08-02 22:03:22 -05:00
Lan Tschirky bada0bdfd4 My user profile 2021-08-01 16:09:50 +02:00
Angelo Ioannou b70b5f2a9f my user profile 2021-08-01 16:09:47 +02:00
Simran Chana d5948b5595 my user profile 2021-08-01 16:09:27 +02:00
Luis Fernando Molina 1de90e9912 Merge pull request #1358 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fixed Not Finding Token Rewards when multiple Pools present at workspace
2021-08-01 06:34:21 -04:00
Luis Fernando Molina 9b8fc29991 Governance Bug Fixed Not Finding Token Rewards when multiple Pools present at workspace 2021-08-01 12:31:56 +02:00
Luis Fernando Molina 0f1818b852 Merge pull request #1357 from Luis-Fernando-Molina/develop
Contribution: Beta 10 labels changed to Beta 11
2021-08-01 04:30:31 -04:00
Luis Fernando Molina df523c7f3f Beta 10 labels changed to Beta 11 2021-08-01 10:29:15 +02:00
Luis Fernando Molina 45ba451cf2 Merge pull request #1356 from Luis-Fernando-Molina/develop
Contribution: Bug fixed Education Project loading last
2021-08-01 04:09:43 -04:00
Luis Fernando Molina 7c9beb6cee Bug fixed Education Project loading last 2021-08-01 10:09:03 +02:00
Luis Fernando Molina 989a9c5098 Merge pull request #1355 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed not opening new user profiles
2021-07-31 16:08:39 -04:00
Luis Fernando Molina ec03837d61 Bug Fixed not opening new user profiles 2021-07-31 22:08:19 +02:00
Luis Fernando Molina fc7ea18156 Merge pull request #1354 from Luis-Fernando-Molina/develop
Contribution: Governance: new listing asset
2021-07-31 14:40:52 -04:00
Luis Fernando Molina 173c394784 Governance: new listing asset 2021-07-31 20:37:32 +02:00
Luis Fernando Molina 648f7f8445 Merge pull request #1353 from Luis-Fernando-Molina/develop
Contribution: Governance: Profile Voting Update
2021-07-31 11:19:38 -04:00
Luis Fernando Molina 14d5fbf8f4 Governance: Profile Voting Update 2021-07-31 17:19:13 +02:00
Luis Fernando Molina 27eb64ffac Merge pull request #1352 from Luis-Fernando-Molina/develop
Contribution: Governance: Improvements on Pools, Assets organization
2021-07-31 03:38:53 -04:00
Luis Fernando Molina aa1f120ad2 Governance: Improvements on Pools, Assets organization 2021-07-31 09:37:22 +02:00
Luis Fernando Molina e48cdcaba0 Merge pull request #1351 from harrellbm/develop
Reference Auto Fix Feature
2021-07-31 03:16:37 -04:00
Brenden Harrell 0e6ed30cec Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-07-30 23:00:25 -05:00
Brenden Harrell 158cc0a55a Code clean up 2021-07-30 23:00:22 -05:00
B Harrell 20e72d5a81 Merge branch 'Superalgos:develop' into develop 2021-07-30 21:47:39 -05:00
Brenden Harrell 1699ebd77f clean up 2021-07-30 21:47:06 -05:00
Brenden Harrell 1c89aac2ff harden hierargy walk function 2021-07-30 17:25:04 -05:00
Brenden Harrell f105ba21ad initial working auto fix 2021-07-30 17:11:48 -05:00
Brenden Harrell 82c5299d48 More work on reference autofix feature 2021-07-30 11:06:53 -05:00
Luis Fernando Molina bbd48b7f10 Merge pull request #1350 from Luis-Fernando-Molina/develop
Contribution: Governance Bug Fixes
2021-07-30 11:56:52 -04:00
Luis Fernando Molina d5786cc957 Governance Bug Fixes 2021-07-30 17:48:47 +02:00
Luis Fernando Molina 5071799241 Fixing Governance 2021-07-30 16:46:05 +02:00
Luis Fernando Molina 013d74146c Merge pull request #1349 from Luis-Fernando-Molina/develop
Contribution: Airdrop and Influencer programs implemented
2021-07-30 07:21:43 -04:00
Luis Fernando Molina ce3dbc58b3 Reports added for Airdrops and Influencers. 2021-07-30 13:19:51 +02:00
Luis Fernando Molina 44fe0c6f90 Airdrop and Influencer programs implemented 2021-07-30 12:48:00 +02:00
Luis Fernando Molina 266c49886e Merge pull request #1348 from Luis-Fernando-Molina/develop
Contribution: Gihub Program at zero cost for the user
2021-07-30 03:07:05 -04:00
Luis Fernando Molina 03ce51e39b Gihub Program at zero cost for the user 2021-07-30 09:05:59 +02:00
Luis Fernando Molina 4630370436 Merge pull request #1347 from Luis-Fernando-Molina/develop
Contribution: BTC Baseline price implemented
2021-07-30 02:56:57 -04:00
Luis Fernando Molina 09ec038700 BTC Baseline price implemented 2021-07-30 08:49:59 +02:00
quantum8 9e5358f864 Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-07-29 12:46:43 +10:00
Luis Fernando Molina 936ce6263f Merge pull request #1345 from Luis-Fernando-Molina/develop
Contribution: Governance more votes
2021-07-28 11:04:37 -04:00
Luis Fernando Molina 4702ff93d5 Governance more votes 2021-07-28 17:03:50 +02:00
Luis Fernando Molina cd6a74b2ee Pool Voting almost complete 2021-07-28 14:34:54 +02:00
Luis Fernando Molina 394bc5f716 Merge pull request #1344 from Luis-Fernando-Molina/develop
Contribution: Votes Update
2021-07-28 07:38:18 -04:00
Luis Fernando Molina e590aba2ba Votes Update 2021-07-28 13:36:45 +02:00
Luis Fernando Molina 9b65fc77a6 Merge pull request #1343 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed at token hierarchy status
2021-07-28 06:20:43 -04:00
Luis Fernando Molina 6bd0738f4b Bug Fixed at token hierarchy status 2021-07-28 12:19:16 +02:00
Luis Fernando Molina 302690795b Merge pull request #1342 from Luis-Fernando-Molina/develop
Contribution: Governance Github Program Finished
2021-07-28 04:43:03 -04:00
Luis Fernando Molina 576c963b24 Governance Github Program Finished 2021-07-28 10:40:44 +02:00
Julian Molina ab65be7acb Merge pull request #1341 from julian-molina/develop
Contribution: Updated profile and minor changes in Asset Plugins
2021-07-28 09:06:58 +02:00
Julian Molina 4e7d67c911 Updated profile and minor changes in Asset Plugins 2021-07-28 09:04:58 +02:00
Brenden Harrell 9c1d79ec7d More work on Auto Reference 2021-07-27 17:45:02 -05:00
Luis Fernando Molina 3659e4fc69 Merge pull request #1340 from Luis-Fernando-Molina/develop
Contribution: Github Program impleme
2021-07-27 16:01:26 -04:00
Luis Fernando Molina b8e031856c Github Program implemented. Reports still missing. 2021-07-27 21:52:53 +02:00
Luis Fernando Molina 34670b98a6 Forks Info Implementation working 2021-07-27 21:31:41 +02:00
Luis Fernando Molina 1c00fd4351 getForks 2021-07-27 20:46:46 +02:00
Luis Fernando Molina 030c21d372 Github Watchers Implemented at Github Program 2021-07-27 16:12:43 +02:00
Luis Fernando Molina dae1164d3c github stars implemented 2021-07-27 14:33:56 +02:00
Luis Fernando Molina 6c9c4511ac Github Program impleme 2021-07-27 14:18:54 +02:00
quantum8 07b7570def Update ts-lf-trading-bot-infos-002-ts-lf-trading-bot-info-order-skipped.json
Spelling fix
2021-07-27 20:54:53 +10:00
Luis Fernando Molina a54de8bc93 testPR 2021-07-27 09:16:20 +02:00
Luis Fernando Molina 4724265316 Merge pull request #1338 from Luis-Fernando-Molina/develop
Governance Bonus Calculation Bug Fixed
2021-07-27 03:12:26 -04:00
Luis Fernando Molina 2b69df26d0 Governance Bonus Calculation Bug Fixed 2021-07-27 09:08:16 +02:00
Luis Fernando Molina 7b24239720 value and status with angle at pools 2021-07-27 08:36:19 +02:00
thaissmolina75 80423c9e4c Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-07-26 15:50:13 -04:00
Luis Fernando Molina 89aa3585ff Merge remote-tracking branch 'origin/develop' into plugins-docs 2021-07-26 21:46:01 +02:00
thaissmolina75 23d77b2d05 getting started tutorial touch up 2021-07-26 14:05:50 -04:00
Luis Fernando Molina a4ae7189b9 reports improved 2021-07-26 14:04:12 +02:00
Julian Molina 5c6ecdf5b4 Merge pull request #1335 from julian-molina/develop
Contribution: My governance profile update
2021-07-26 13:53:34 +02:00
Julian Molina 141ddc7c4a My governance profile update 2021-07-26 13:53:08 +02:00
Luis Fernando Molina e3594187c3 Merge pull request #1334 from Luis-Fernando-Molina/develop
Pool Report Imrpoved
2021-07-26 07:44:32 -04:00
Luis Fernando Molina 882df1293f Pools Report Improved 2021-07-26 13:35:56 +02:00
Luis Fernando Molina 524c530415 Pools Report Improved 2021-07-26 13:31:32 +02:00
Luis Fernando Molina 1b4a54de24 Merge pull request #1333 from Luis-Fernando-Molina/develop
Contribution: Token Listing Pools
2021-07-26 07:22:20 -04:00
Luis Fernando Molina de692ebf95 Token Listing Pools 2021-07-26 13:21:52 +02:00
Luis Fernando Molina 4978522b21 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-07-26 12:44:23 +02:00
Luis Fernando Molina 7fdc0d7356 Merge pull request #1332 from Luis-Fernando-Molina/develop
Contribution: Governance: Decimals Removed from Token related values
2021-07-25 16:40:23 -04:00
Luis Fernando Molina 987a3cacbb Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-07-25 22:39:43 +02:00
Luis Fernando Molina 3f231fbb04 Governance: Decimals Removed from Token related values 2021-07-25 22:38:59 +02:00
Luis Fernando Molina 506f4caedc Merge pull request #1331 from Luis-Fernando-Molina/develop
Contribution: Decendants Bug Fixed, Circular References enables, MAX_GENERATIONS implemented
2021-07-25 16:29:01 -04:00
Luis Fernando Molina 313641a2e0 Delegation Program and Voting Program can have circular references and limited up to 10 generations 2021-07-25 22:25:55 +02:00
Luis Fernando Molina 555fa9a28c Decendants Bug Fixed, Circular References enables, MAX_GENERATIONS implemented 2021-07-25 21:32:42 +02:00
Julian Molina 59f6871a66 Merge pull request #1330 from julian-molina/develop
Contribution: Julian Molina Profile
2021-07-25 20:10:35 +02:00
Julian Molina 432554f99c Julian Molina Profile 2021-07-25 20:09:30 +02:00
Luis Fernando Molina ff3d03047a Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-07-25 19:01:52 +02:00
Luis Fernando Molina aa7912b714 Update Luis-Fernando-Molina.json 2021-07-25 19:01:40 +02:00
Luis Fernando Molina 33743283bc Merge pull request #1315 from thaissmolina75/plugins-docs
Contribution: Basic Tutorial spanish trans
2021-07-25 12:43:30 -04:00
thaissmolina75 1ec02ea8c6 Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-07-25 12:38:59 -04:00
Julian Molina 63c4d9132f Merge pull request #1329 from julian-molina/develop
Contribution: Superalgos Pools and Marketing Assets
2021-07-25 18:03:11 +02:00
Julian Molina fdeda61d60 Superalgos Pools and Marketing Assets 2021-07-25 17:54:24 +02:00
Luis Fernando Molina 6643e7f696 Merge pull request #1328 from Luis-Fernando-Molina/develop
Contribution: Governance Tokens to distribute config changed
2021-07-25 06:19:47 -04:00
Luis Fernando Molina d24fb0bb58 Plugins can be saved with workspace when option is enabled at Plugin File 2021-07-25 12:19:20 +02:00
Luis Fernando Molina 52e618b0a1 Governance Tokens to distribute config changed 2021-07-25 12:12:28 +02:00
Luis Fernando Molina 27c0eb3741 Merge pull request #1327 from Luis-Fernando-Molina/develop
Contribution: Gov Command Interface UI and Docs partly implemented
2021-07-25 05:12:29 -04:00
Luis Fernando Molina acff0c9756 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-07-25 11:01:40 +02:00
Luis Fernando Molina 3118275cda Gov Command Interface UI and Docs partly implemented 2021-07-25 11:01:27 +02:00
Brenden Harrell d9ec0c8c49 Initial work on Auto Reference feature 2021-07-23 21:58:51 -05:00
Luis Fernando Molina af53c71b8f Merge pull request #1326 from Raplh2502/develop
Contribution: Improvement in the plotter of Heikin-Ashi candles in Heikin data mine ; cleaning of useless lines of code in Quasar data mine
2021-07-23 04:16:22 -04:00
Raplh2502 3088b5e5c9 Improvement in the plotter of Heikin-Ashi candles in Heikin data mine ; cleaning of useless lines of code in Quasar data mine 2021-07-22 21:47:34 +01:00
Luis Fernando Molina cb5412fec1 Merge pull request #1324 from harrellbm/plugins-docs
Final Plugin Upgrades - they are finally done!
2021-07-22 06:40:09 -04:00
Luis Fernando Molina 924a4cf19e Merge pull request #1323 from Raplh2502/develop
Contribution:  Finalization of the trend span indicator for OBV evolution in Quasar datamine
2021-07-22 06:39:35 -04:00
Julian Molina e705f5f4c5 Merge pull request #1325 from julian-molina/develop
Contribution: Superalgos pools, marketing and positions definitions
2021-07-22 09:44:03 +02:00
Julian Molina a1e449191e Superalgos pools, marketing and positions definitions 2021-07-22 09:40:39 +02:00
B Harrell 4c56fdde6a Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-07-21 21:28:10 -05:00
Brenden Harrell 5bed2f5a8e Upgrade Plugins Tested Exchanges Workspace 2021-07-21 21:18:02 -05:00
Brenden Harrell 116dcae01b Upgrade Plugins Exchange Keys Workspace 2021-07-21 20:51:10 -05:00
Brenden Harrell 5de2d189ad Upgrade Plugins for BB top workspace 2021-07-21 19:54:38 -05:00
Brenden Harrell 9a6168f871 Upgrade plugins in API demo workspace 2021-07-21 19:48:06 -05:00
Raplh2502 7b6f239cdd Finalization of the trend span indicator for OBV evolution in Quasar datamine 2021-07-21 22:58:51 +01:00
Raplh2502 de65acf412 Finalization of the trend span indicator for OBV evolution in Quasar datamine 2021-07-21 22:57:16 +01:00
Raplh2502 c6a2544e60 Finalization of the trend span indicator for OBV evolution in Quasar datamine 2021-07-21 22:26:01 +01:00
Luis Fernando Molina 6efa918487 Merge pull request #1320 from Luis-Fernando-Molina/develop
Contribution: Bonus Program Bug Fixed for Voting and Delegation
2021-07-20 10:31:18 -04:00
Luis Fernando Molina 51eeb9637f Bonus Program Bug Fixed for Voting and Delegation 2021-07-20 16:30:08 +02:00
Luis Fernando Molina 05c1025899 Merge pull request #1319 from Luis-Fernando-Molina/develop
Contribution: Bonus Program Bug Fixed for Descendants Program
2021-07-20 08:45:22 -04:00
Luis Fernando Molina 476a1798f6 Bonus Program Bug Fixed for Descendants Program 2021-07-20 14:42:54 +02:00
Julian Molina d407645d8d Merge pull request #1311 from quantum8/plugins-docs
Plugins docs Spelling fixes
2021-07-20 11:55:28 +02:00
Luis Fernando Molina 2a860da0e2 Merge pull request #1318 from Luis-Fernando-Molina/develop
Contribution: Mining Tab with addresses implemented
2021-07-20 04:03:00 -04:00
Luis Fernando Molina 78b43f95c7 Mining Tab with addresses implemented 2021-07-20 10:02:18 +02:00
Luis Fernando Molina 1c1bb330b4 Merge pull request #1316 from Raplh2502/develop
Contribution: update of Quasar data mine : cleaning of unused variables and useless indicator bots. Reforging of OBV span and trend span, correction of incoherencies in if statements of OBV integral
2021-07-20 03:35:20 -04:00
Luis Fernando Molina bff11c2035 Merge pull request #1317 from harrellbm/plugins-docs
Update Plugins Machine learning Workspace
2021-07-20 03:34:47 -04:00
Brenden Harrell c7799e704a Update Plugins Machine learning Workspace 2021-07-19 21:44:26 -05:00
Raplh2502 16bf1ad3b0 update of Quasar data mine : cleaning of unused variables and useless indicator bots. Reforging of OBV span and trend span, correction of incoherencies in if statements of OBV integral 2021-07-19 23:33:11 +01:00
Luis Fernando Molina 4953a21538 Merge pull request #1314 from Luis-Fernando-Molina/develop
Contribution: Mining Calculations implemented.
2021-07-19 15:46:06 -04:00
thaissmolina75 4b61c6e74b Basic Tutorial spanish trans 2021-07-19 13:35:24 -04:00
Luis Fernando Molina bb2de43dec Mining Calculations implemented. 2021-07-19 16:18:36 +02:00
quantum8 3d70bffb37 Update target-rate.json
spelling fixes
2021-07-19 21:44:50 +10:00
quantum8 00ed8594fc Update indicator-bot.json
spelling fix
2021-07-19 21:43:46 +10:00
Luis Fernando Molina 710df75fcf Merge pull request #1313 from Luis-Fernando-Molina/develop
Contribution: Tokens Mined Implemented
2021-07-19 07:33:55 -04:00
Luis Fernando Molina 7348cad232 Tokens Mined Implemented 2021-07-19 13:32:42 +02:00
Luis Fernando Molina b929c3ec29 Removing Unused spaces 2021-07-19 11:58:19 +02:00
Luis Fernando Molina 6fbc0710da comments 2021-07-19 11:47:32 +02:00
Luis Fernando Molina 7eb2545d4e Merge pull request #1312 from Luis-Fernando-Molina/develop
Contribution: Claims, Votes, Staking and Delegation Reports Implemented
2021-07-19 03:18:01 -04:00
Luis Fernando Molina 81538898b2 Claims, Votes, Staking and Delegation Reports Implemented 2021-07-19 09:12:01 +02:00
Luis Fernando Molina 0f93ec2b24 Merge pull request #1310 from harrellbm/develop
Add Error Catch description for node modules not found
2021-07-19 01:28:24 -04:00
Brenden Harrell c44f140927 Add code note 2021-07-18 22:01:30 -05:00
quantum8 e87b38aa53 Update setting-up-a-new-chart-040-tutorial-step-easy-as-1-2-3.json
Spelling fix
2021-07-19 12:56:15 +10:00
quantum8 4401aaf2d3 Update setting-up-a-new-chart-038-tutorial-step-check-the-chart.json
Spelling fix
2021-07-19 12:53:03 +10:00
Brenden Harrell 367cb980be Add Error Catch description for node modules not found 2021-07-18 21:21:28 -05:00
Luis Fernando Molina 6dc99f5574 Merge pull request #1308 from harrellbm/plugins-docs
Finish Upgrading Plugins in Tutorial Workspaces
2021-07-18 09:50:59 -04:00
Brenden Harrell adfe8d3886 Upgrade Plugin Trading Design Workspace 2021-07-17 15:22:44 -05:00
Brenden Harrell 0ac81e6a10 Upgrade Plugins Bot Layer Workspace 2021-07-17 15:13:13 -05:00
Brenden Harrell a47c1a31ad Upgrade Install Market Plugins 2021-07-17 14:35:31 -05:00
Luis Fernando Molina c754382b89 Merge pull request #1307 from Luis-Fernando-Molina/develop
Contribution: Filters Implemented
2021-07-16 13:11:15 -04:00
Luis Fernando Molina 936ce51b66 Filters Implemented 2021-07-16 19:10:38 +02:00
Luis Fernando Molina 072cca8e6b Filters at Utilities 2021-07-16 18:58:54 +02:00
Luis Fernando Molina 4aba44d87f Filters working at User Profiles 2021-07-16 18:39:57 +02:00
Luis Fernando Molina 7254e97d91 Filter Box Set up 2021-07-16 17:55:59 +02:00
Luis Fernando Molina 2037cfac74 Merge pull request #1306 from Luis-Fernando-Molina/develop
Contribution: Governance Reports Formatting done.
2021-07-16 11:17:11 -04:00
Luis Fernando Molina 223522b1c7 Update Luis-Fernando-Molina.json 2021-07-16 17:14:13 +02:00
Luis Fernando Molina 1c49078b86 isRunning 2021-07-16 16:26:34 +02:00
Luis Fernando Molina 57d22430fc isRunning 2021-07-16 16:26:00 +02:00
Luis Fernando Molina b7b72cf870 isRunning false 2021-07-16 16:24:02 +02:00
Luis Fernando Molina 19b1c0f991 isRunning False 2021-07-16 16:22:46 +02:00
Luis Fernando Molina 273300a61d Table Formatting Working 2021-07-16 16:14:31 +02:00
Luis Fernando Molina 33e36c0355 Text Aligment Working 2021-07-16 16:01:55 +02:00
Luis Fernando Molina 52864745e4 Merge pull request #1305 from Luis-Fernando-Molina/develop
Contribution: All reports implemented
2021-07-16 08:15:09 -04:00
Luis Fernando Molina b4426e6d24 All reports implemented 2021-07-16 14:13:23 +02:00
Luis Fernando Molina 78d8a6a64a Assets Report Implemented 2021-07-16 14:03:23 +02:00
Luis Fernando Molina 140256d348 Pools Report Implemented 2021-07-16 11:51:00 +02:00
Luis Fernando Molina f8868ee5c6 Merge pull request #1304 from Luis-Fernando-Molina/develop
Contribution: Supporters and Mentors reports implemented
2021-07-16 04:56:41 -04:00
Luis Fernando Molina 7cd402bc62 Supporters and Mentors reports implemented 2021-07-16 10:55:01 +02:00
Luis Fernando Molina 6e72bf0ae9 supporters working 2021-07-16 10:32:23 +02:00
Luis Fernando Molina 1c73ad580c Merge pull request #1303 from Raplh2502/develop
Contribution: Add a new indicator in Quasar data mine to evaluate the evolution of the span of the On-Balance volume
2021-07-16 03:31:41 -04:00
Raplh2502 04c0eb8f27 Add a new indicator in Quasar data mine to evaluate the evolution of the span of the On-Balance volume 2021-07-15 23:00:47 +01:00
Julian Molina 726895214f Merge pull request #1301 from julian-molina/develop
Contribution: Index page credits
2021-07-15 18:23:20 +02:00
Julian Molina b378a449b5 Index page credits 2021-07-15 18:22:23 +02:00
Luis Fernando Molina ff5a649cd6 Merge pull request #1300 from Luis-Fernando-Molina/develop
Contribution: Referrals Report Working
2021-07-15 11:56:14 -04:00
Luis Fernando Molina 9270a2f0f3 Bug Table Order Change changed Tabs Fixed 2021-07-15 17:53:43 +02:00
Luis Fernando Molina f30697f09b Preparing for navigating to a Tab 2021-07-15 17:20:21 +02:00
Luis Fernando Molina ca964b0eb8 Merge pull request #1299 from ssplatt/handle-git-error
Avoid crashing when attempting to use git command but it isn't available
2021-07-15 10:58:37 -04:00
Brett Taylor 853fabadb3 fix docker compose env vars 2021-07-15 08:53:32 -04:00
Brett Taylor 112ea23194 change location of check 2021-07-15 08:49:01 -04:00
Luis Fernando Molina d0716e25f2 Referrals Report Showing up 2021-07-15 13:02:12 +02:00
Luis Fernando Molina fb5244c0e6 Merge pull request #1297 from Luis-Fernando-Molina/develop
Contribution: utilities table
2021-07-15 05:49:45 -04:00
Luis Fernando Molina 0dc53e3787 result counter fixed 2021-07-15 11:48:27 +02:00
Luis Fernando Molina 10885c866c utilities table 2021-07-15 11:41:56 +02:00
Luis Fernando Molina 6ce6e59974 Fixing function names 2021-07-15 11:28:31 +02:00
Julian Molina c687fb8237 Merge pull request #1296 from julian-molina/develop
Contribution: Governance CSS
2021-07-15 10:55:34 +02:00
Julian Molina c5d45cb3f0 Governance new section on UserProfiles page 2021-07-15 10:55:15 +02:00
Julian Molina b9aca75c6f This is my contribution to Superalgos 2021-07-15 10:47:09 +02:00
Julian Molina 83afd6c429 Governance CSS 2021-07-15 10:15:33 +02:00
Luis Fernando Molina 389847bf2f Merge pull request #1295 from Luis-Fernando-Molina/develop
Contribution: Governance System with User Profiles Table
2021-07-14 15:14:04 -04:00
Luis Fernando Molina e35de07e9e deepScan bug fixed 2021-07-14 21:11:10 +02:00
Luis Fernando Molina 5e034e0b01 Governance System with User Profiles Table 2021-07-14 21:06:06 +02:00
Luis Fernando Molina a480b1595e Side Tabs depending on elements of the workspace working 2021-07-14 21:04:07 +02:00
Luis Fernando Molina 210f72effd Arrows showing 2021-07-14 18:16:38 +02:00
Luis Fernando Molina 0358d48454 table ordering working 2021-07-14 17:54:24 +02:00
Brett Taylor 77184086ab add check to see if git command is available 2021-07-14 09:49:03 -04:00
Luis Fernando Molina 35f4d49289 Property Data Types considered for table ordering 2021-07-14 14:26:57 +02:00
Luis Fernando Molina e7e1156369 User Profile Table appearing 2021-07-14 13:32:32 +02:00
Luis Fernando Molina dcd9d627e2 Refactoring 2021-07-14 11:02:02 +02:00
Luis Fernando Molina b759e8a898 Merge pull request #1293 from Raplh2502/develop
Contribution: Adding 2 new indicators based on On Balance Volume / an integral comparison between ema3 and ema20 of the OBV to create the "Integral Oscillator" and a comparison of the current integral of ema3 and ema20 OBV and the average value of the current trend to create the On-Balance Volume Span
2021-07-14 04:43:11 -04:00
Raplh2502 627f14460d Adding 2 new indicators based on On Balance Volume / an integral comparison between ema3 and ema20 of the OBV to create the "Integral Oscillator" and a comparison of the current integral of ema3 and ema20 OBV and the average value of the current trend to create the On-Balance Volume Span 2021-07-13 22:36:52 +01:00
Raplh2502 abc2fd0c21 This is my contribution to Superalgos 2021-07-13 22:27:10 +01:00
Luis Fernando Molina 292818610e Merge pull request #1291 from harrellbm/develop
Update Charting workspace for plugin saving
2021-07-13 08:08:28 -04:00
Brenden Harrell f3c92a7f74 Update Charting workspace for plugin saving 2021-07-11 21:45:32 -05:00
Luis Fernando Molina 88d70f7056 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-07-10 11:37:37 +02:00
Luis Fernando Molina 503ff60735 Merge pull request #1288 from harrellbm/plugins-docs
Final Tutorial Icon maintenance
2021-07-10 05:16:32 -04:00
Luis Fernando Molina df3037ce8f Merge pull request #1289 from Smidy13/develop
Blank Template Upgraded for Plugins Saving Feature
2021-07-10 05:16:22 -04:00
Luis Fernando Molina 50faac2f4f Merge pull request #1290 from harrellbm/develop
Add Voting Program to harrellbm Profile
2021-07-10 05:16:05 -04:00
Brenden Harrell 63dd04cc32 Add Voting Program to harrellbm Profile 2021-07-09 21:34:53 -05:00
Brenden Harrell a6b1db6c79 Misc Workspace clean ups 2021-07-09 20:25:02 -05:00
Brenden Harrell def18ed292 Update Icons for Trading Design Tutorial 2021-07-09 20:16:52 -05:00
Smidy13 29e5d2df79 Blank Template Upgraded for Plugins Saving Feature 2021-07-10 09:50:16 +12:00
Luis Fernando Molina cc997900c8 Profiles Showing Up 2021-07-09 15:42:59 +02:00
Luis Fernando Molina 9e4a179899 Governance Space Footer Added 2021-07-09 14:24:20 +02:00
Luis Fernando Molina 9f6b62a342 Tabs defined 2021-07-09 14:14:59 +02:00
Luis Fernando Molina 4ded152850 Governance CSS forked from Docs 2021-07-09 13:58:08 +02:00
Luis Fernando Molina 884fb2faa9 Reports Page being shown 2021-07-09 13:38:32 +02:00
Luis Fernando Molina 19746d03d1 Refactoring 2021-07-09 13:05:09 +02:00
Luis Fernando Molina 27c33865a6 Merge pull request #1286 from Raplh2502/develop
Contribution: Adding forecast range on the Holt-Winters indicator of the Quasar data mine
2021-07-09 03:50:24 -04:00
Raplh2502 5008ee4fc7 Adding forecast range on the Holt-Winters indicator of the Quasar data mine 2021-07-08 22:23:40 +01:00
Luis Fernando Molina 49fbc67d29 Governance Tab Implemented 2021-07-08 17:25:48 +02:00
Luis Fernando Molina b5830d65f6 Workspace Space Implemented 2021-07-08 16:13:33 +02:00
Luis Fernando Molina 75e03b3793 Merge pull request #1285 from Luis-Fernando-Molina/develop
Contribution: Tabs Improved
2021-07-08 08:44:56 -04:00
Luis Fernando Molina 672cb74c9a Merge pull request #1281 from quantum8/plugins-docs
Contribution: hello world tutorial icon update
2021-07-08 08:44:35 -04:00
Luis Fernando Molina f121d2641f Tabs Improved 2021-07-08 14:43:56 +02:00
Luis Fernando Molina fd90a3c137 Merge pull request #1284 from Luis-Fernando-Molina/develop
Contribution: app schema update Plugin File Initial Values
2021-07-08 07:46:00 -04:00
Luis Fernando Molina 7f89d5b068 app schema update Plugin File Initial Values 2021-07-08 13:45:13 +02:00
Luis Fernando Molina 10664a3f38 Merge pull request #1283 from Luis-Fernando-Molina/develop
Contribution: Info Message Duration Fixed for Plugin Saved text
2021-07-08 07:33:18 -04:00
Luis Fernando Molina ac68e37472 Info Message Duration Fixed for Plugin Saved text 2021-07-08 13:31:34 +02:00
Luis Fernando Molina 1499b23cb9 Merge pull request #1282 from Raplh2502/develop
Contribution: Correction of a bad reference in Heikin data mine ; Adding 3 different periods to the Fastrend indicatore and a set of supplementary EMAs in the On-Balance Volume in Quasar data mine
2021-07-08 04:08:14 -04:00
quantum8 7e0450dd05 Tutorial Icon update 2021-07-08 13:25:45 +10:00
quantum8 db59d134be Welcome tute icon update 2021-07-08 11:17:53 +10:00
Raplh2502 6bbe5c1eb2 Correction of a bad reference in Heikin data mine ; Adding 3 different periods to the Fastrend indicatore and a set of supplementary EMAs in the On-Balance Volume in Quasar data mine 2021-07-07 22:44:06 +01:00
quantum8 1c015b6cde Welcome Tutorials Icon Update 2021-07-07 22:41:30 +10:00
quantum8 f3eb155241 Merge branch 'plugins-docs' of https://github.com/quantum8/Superalgos into plugins-docs 2021-07-07 14:04:00 +10:00
quantum8 b1f08386ad My Superalgos Review 2021-07-07 14:00:20 +10:00
Luis Fernando Molina 0d9a5f54c2 Merge pull request #1280 from Luis-Fernando-Molina/develop
Contribution: Workspaces upgrade to support the Saving Plugins Features.
2021-07-06 06:14:21 -04:00
Luis Fernando Molina 0a3faa8b12 Workspaces upgrade to support the Saving Plugins Features. 2021-07-06 12:12:23 +02:00
Luis Fernando Molina 3f2715b53c Getting Started Tutorials Upgraded for Plugins Saving Feature 2021-07-06 12:03:30 +02:00
Luis Fernando Molina 9125e3e7f2 Weak-hands-Buster-v2-Demo Upgraded to Support Plugins Saving 2021-07-06 11:25:08 +02:00
Luis Fernando Molina 4df95a63f2 Merge pull request #1279 from Luis-Fernando-Molina/develop
Contribution: Cod Comments added
2021-07-06 03:34:09 -04:00
Luis Fernando Molina 7ec952d432 Cod Comments added 2021-07-06 09:33:45 +02:00
Luis Fernando Molina 6922b1b34c Merge pull request #1278 from Luis-Fernando-Molina/develop
Contribution: Adding Voting Program Bug Fixed
2021-07-06 02:44:47 -04:00
Luis Fernando Molina b48de42683 Adding Voting Program Bug Fixed 2021-07-06 08:44:03 +02:00
Luis Fernando Molina 38e740bf43 Merge pull request #1277 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed setLastUsedWorkspace()
2021-07-06 02:43:58 -04:00
Luis Fernando Molina 0f53c8eba6 Bug Fixed setLastUsedWorkspace() 2021-07-06 08:36:35 +02:00
Luis Fernando Molina fd35c77b63 Merge pull request #1276 from quantum8/plugins-docs
Plugins docs
2021-07-06 02:29:01 -04:00
Luis Fernando Molina d5674ec982 Merge pull request #1275 from harrellbm/plugins-docs
Docs and Custom Chart Workspace Fixes
2021-07-06 02:27:48 -04:00
Luis Fernando Molina 577a80f8bc Merge pull request #1274 from Raplh2502/develop
Contribution: Updating Heikin data mine with correction of the color switching (green for up, red for down) and creation of Supertrend with Heikin-Ashi candles ; modification of Quasar data mine by adding color change for long terme trend to the FastTrend chart and an indicator for intermediate trend
2021-07-06 02:27:06 -04:00
Luis Fernando Molina 7a69073a8c Merge pull request #1273 from harrellbm/develop
Updated user profile for harrellbm
2021-07-06 02:26:24 -04:00
quantum8 9b91624038 Update troubleshooting-017-problems-saving-the-workspace-or-plugins.json
spelling fix
2021-07-06 15:36:32 +10:00
quantum8 d3375305d3 Update branches-management-messages-002-switching-branches-current-branch-changed.json
spelling fix
2021-07-06 15:35:04 +10:00
Brenden Harrell c720e20612 Update Trading Bot Layer Tutorial 2021-07-05 20:49:06 -05:00
Brenden Harrell 57d38e3d84 Update Install Market Tutorial 2021-07-05 20:21:48 -05:00
Brenden Harrell 44ab535148 Fix Tutorial References for Market Install 2021-07-05 18:26:19 -05:00
Brenden Harrell ed74a0e3d2 Merge branch 'plugins-docs' of https://github.com/harrellbm/Superalgos into plugins-docs 2021-07-05 18:07:54 -05:00
B Harrell 4eef8b4b0d Merge branch 'Superalgos:develop' into develop 2021-07-05 18:07:01 -05:00
Brenden Harrell e1d1065156 Update PNGs for refactoring in Debugging topic 2021-07-05 17:36:18 -05:00
Raplh2502 fd293220f5 Updating Heikin data mine with correction of the color switching (green for up, red for down) and creation of Supertrend with Heikin-Ashi candles ; modification of Quasar data mine by adding color change for long terme trend to the FastTrend chart and an indicator for intermediate trend 2021-07-05 23:30:19 +01:00
Brenden Harrell 045ed9f2f1 Updated user profile for harrellbm 2021-07-05 16:07:00 -05:00
Luis Fernando Molina c78cb554cd Merge pull request #1272 from Luis-Fernando-Molina/develop
Contribution: Trading Mine Fixed and new Data Mines added.
2021-07-05 16:33:20 -04:00
Luis Fernando Molina d554d2eac6 Trading Mine Fixed and new Data Mines added. 2021-07-05 22:32:34 +02:00
Luis Fernando Molina e720cb1f3b Merge pull request #1271 from Superalgos/plugins-docs
Plugins docs into Develop
2021-07-05 15:33:33 -04:00
Luis Fernando Molina 29ad71cd78 Merge branch 'develop' into plugins-docs 2021-07-05 15:32:16 -04:00
Luis Fernando Molina 42e4524c44 Merge pull request #1269 from Raplh2502/develop
Contribution: Creation of Heikin data mine including Heikin-Ashi candles (functional but problems with color switch on candles) and dummy Bot Indicator for futur supertrend based on heikin ashi candles
2021-07-05 15:06:22 -04:00
Luis Fernando Molina 18cd4bbc25 Merge pull request #1268 from narkxx/plugins-docs
Barcelona Data Mine
2021-07-05 15:05:52 -04:00
Raplh2502 ab54c8ed65 Creation of Heikin data mine including Heikin-Ashi candles (functional but problems with color switch on candles) and dummy Bot Indicator for futur supertrend based on heikin ashi candles 2021-07-05 00:25:38 +01:00
Luis Fernando Molina 313a6681b9 Merge pull request #1267 from Luis-Fernando-Molina/develop
Contribution: shorcuts polished
2021-07-04 13:31:10 -04:00
Luis Fernando Molina f24f260200 shorcuts polished 2021-07-04 19:30:49 +02:00
Luis Fernando Molina fdabe46603 Merge pull request #1266 from Luis-Fernando-Molina/develop
Contribution: Shorcuts Improved
2021-07-04 13:27:14 -04:00
Luis Fernando Molina 30aea18914 Shorcuts Improvements Finished 2021-07-04 19:25:53 +02:00
Luis Fernando Molina 827dcbaee6 Floating Space Settings 2021-07-04 19:01:58 +02:00
Luis Fernando Molina e7c22b1311 Shorcuts Improved 2021-07-04 18:46:51 +02:00
Luis Fernando Molina 396d42c44d Merge pull request #1265 from Raplh2502/develop
Contribution: Adding Holt-Winters calculated set of indicators with an instant forecast, a trend and 5, 10, 20 and 30 futur periods forecast
2021-07-04 12:16:39 -04:00
Raplh2502 64d5e97771 Adding Holt-Winters calculated set of indicators with an instant forecast, a trend and 5, 10, 20 and 30 futur periods forecast 2021-07-04 16:28:33 +01:00
Luis Fernando Molina 9b2e490b30 Merge pull request #1262 from Luis-Fernando-Molina/develop
Contribution: Current Branch being asked to Git, removed from Workspace Config and Browser Local Storage
2021-07-04 04:45:26 -04:00
Luis Fernando Molina aea9e8f707 Deep Scan Issue Fixed 2021-07-04 10:44:09 +02:00
Luis Fernando Molina a64dd3ccd8 Current Branch being asked to Git, removed from Workspace Config and Browser Local Storage 2021-07-04 10:42:13 +02:00
Luis Fernando Molina c442661fbd Merge pull request #1261 from Luis-Fernando-Molina/develop
Contribution: no more changes to launch.json
2021-07-04 03:35:25 -04:00
Luis Fernando Molina 268d5eba7c no more changes to launch.json 2021-07-04 09:34:04 +02:00
Luis Fernando Molina beccb0f6db Merge pull request #1258 from benmarte/develop
Added sandbox mode
2021-07-04 03:29:17 -04:00
Luis Fernando Molina 7ba196cbb9 Foundations to Education Refactoring 2021-07-04 09:24:04 +02:00
Luis Fernando Molina df9c77bd06 Refactoring since code seems to come from master. 2021-07-04 09:21:24 +02:00
Luis Fernando Molina bc7843b337 Merge pull request #1259 from harrellbm/develop
Add User Profile for harrellbm
2021-07-04 03:16:17 -04:00
Brenden Harrell c33c53348b Add User Profile for harrellbm 2021-07-03 10:54:59 -05:00
Benjamin 2caf827d2e fixed merge conflicts 2021-07-03 09:58:17 -04:00
Benjamin 80ab62225c added sandbox mode 2021-07-03 09:54:55 -04:00
Benjamin c70b4a6237 added sandbox mode 2021-07-03 09:48:33 -04:00
Luis Fernando Molina 708a94c99d Merge pull request #1257 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed with Design space getting the mouse over event of the charting space.
2021-07-03 06:44:58 -04:00
Luis Fernando Molina 198c3ea5c8 Bug Fixed with Design space getting the mouse over event of the charting space. 2021-07-03 12:44:37 +02:00
Luis Fernando Molina b7beb137e0 Merge pull request #1254 from harrellbm/plugins-docs
Various Doc Updates
2021-07-03 03:44:59 -04:00
Luis Fernando Molina b78b334426 Merge pull request #1255 from harrellbm/develop
Fix file name error
2021-07-03 03:44:14 -04:00
Luis Fernando Molina e8875e171f Merge pull request #1256 from Luis-Fernando-Molina/develop
Contribution: Fix Docs not showing at Governance
2021-07-03 03:40:57 -04:00
Luis Fernando Molina 4cdc1fd841 Docs loading at Governance wrokspace fix 2021-07-03 09:35:59 +02:00
narkxx b4e165fbb5 Barcelona Data Mine 2021-07-02 23:15:17 +02:00
Brenden Harrell 534b59d702 Fix file name error 2021-07-02 09:26:01 -05:00
Brenden Harrell 2d91c1c57d Various Doc Updates 2021-07-01 21:45:47 -05:00
Luis Fernando Molina 78b5f12272 Merge pull request #1252 from Luis-Fernando-Molina/develop
Contribution: Disable Plugin Saving
2021-07-01 16:34:35 -04:00
Luis Fernando Molina c1dade3c3f Disable Plugin Saving 2021-07-01 22:34:06 +02:00
Luis Fernando Molina 42f32bdac1 Merge pull request #1249 from Luis-Fernando-Molina/develop
Contribution: Plugins Saved everytime the Workspace is saved.
2021-07-01 16:18:53 -04:00
Luis Fernando Molina 25a03359e9 Disabling Current Branch stored at the workspace and automatic switching. 2021-07-01 22:09:47 +02:00
Luis Fernando Molina 1bcc755706 WHB2 Plugin Workspace Fixed 2021-06-30 21:42:03 +02:00
Luis Fernando Molina 33cd8dc262 Saving Individual Plugins Working 2021-06-30 21:15:13 +02:00
Luis Fernando Molina c0b73e702b Enabling and Disabling Saving with workspace 2021-06-30 20:48:09 +02:00
Luis Fernando Molina 81d3f66232 Education Project Governance Workspace Fixed 2021-06-30 20:20:44 +02:00
Luis Fernando Molina 3549a6eaf7 Ethereum Project Governance Workspace Fixed 2021-06-30 20:14:01 +02:00
Luis Fernando Molina eea8d4e9d1 Foundations Projects Governance Workspace Fixed 2021-06-30 20:06:43 +02:00
Luis Fernando Molina 0c2a91c9f7 Tensor Flow Governance Workspace Fixed 2021-06-30 16:57:33 +02:00
Luis Fernando Molina e8388502ed Removing the automatic saving of the workspace while changing worksapces 2021-06-30 16:52:14 +02:00
Luis Fernando Molina 8a018d0063 Governance Project Workspace Fixed 2021-06-30 16:46:15 +02:00
Luis Fernando Molina cf6fc83127 removing auto saving of the workspace 2021-06-30 16:35:34 +02:00
Luis Fernando Molina 0ad6f69b9c Update Weights.js 2021-06-30 16:25:59 +02:00
Luis Fernando Molina 4f1dd4be36 Update Weights.js 2021-06-30 16:24:03 +02:00
Luis Fernando Molina e611453c21 Token Distribution Superalgos Workspace Plugins Fixed 2021-06-30 16:19:19 +02:00
Luis Fernando Molina 47b9755b4b Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-30 13:38:41 +02:00
Luis Fernando Molina 01550df79d Finals details of saving plugins polished 2021-06-30 13:36:20 +02:00
Luis Fernando Molina 37c3a9e180 Saving Plugins Working! 2021-06-30 13:30:26 +02:00
Luis Fernando Molina cd791d84b0 Bug Fixed Saving User Profiles 2021-06-30 13:11:12 +02:00
Luis Fernando Molina fb68ab2f87 bug fixed reading Json config 2021-06-30 12:57:52 +02:00
Luis Fernando Molina 22ef87ad80 Plugins Saved everytime the Workspace is saved. 2021-06-30 12:28:16 +02:00
Luis Fernando Molina 1a38d502a2 Merge pull request #1248 from Raplh2502/develop
Contribution: Adding EMA20 on the On Balance Volume in Quasar data mine
2021-06-30 05:51:20 -04:00
Raplh2502 ae024b2ea7 Adding EMA20 on the On Balance Volume in Quasar data mine 2021-06-30 06:47:13 +01:00
Luis Fernando Molina e80d1e731c Merge pull request #1246 from Luis-Fernando-Molina/develop
Contribution: Current Branch and Contributions Branch now stored as a Config Property of the Workspace not, and removed from the Browser Internal Storage.
2021-06-28 11:24:24 -04:00
Luis Fernando Molina 3a1f99ff86 Branch Changes after new workspace is loaded, if needed, depending on Workspace Config Property 2021-06-28 17:17:16 +02:00
Luis Fernando Molina 79b8b17328 Current Branch and Contributions Branch now stored as a Config Property of the Workspace not, and removed from the Browser Internal Storage. 2021-06-28 17:06:21 +02:00
Luis Fernando Molina a92fd87906 Merge pull request #1245 from Luis-Fernando-Molina/develop
Contribution: Big Mantainance Session: Loading of workspace reorganized, Language stored as Config Property of Workspace, removed from Browser Local Stoarage
2021-06-28 09:21:18 -04:00
Luis Fernando Molina ca3f38f31d Deep Scan Bug Fix 2021-06-28 15:20:10 +02:00
Luis Fernando Molina 79696f8b47 Big Mantainance Session: Loading of workspace reorganized, Language stored as Config Property of Workspace, removed from Browser Local Stoarage 2021-06-28 15:07:35 +02:00
Luis Fernando Molina e394e30789 Merge pull request #1243 from Luis-Fernando-Molina/develop
Contribution: Dependency Filter Fixed so that it allows the pluralVariableName of Products to be mentioned in User Code and still load the dependency
2021-06-28 05:10:33 -04:00
Luis Fernando Molina 4e9cc28dc4 Dependency Filter Fixed so that it allows the pluralVariableName of Products to be mentioned in User Code and still load the dependency 2021-06-28 11:09:52 +02:00
Julian Molina 87cca72287 Merge pull request #1238 from julian-molina/develop
Contribution: Superalgos SA Token refactoring a Beta 11 logo
2021-06-27 12:58:08 +02:00
Julian Molina 80e4d73317 Hirajin governance icons 2021-06-27 12:57:13 +02:00
Luis Fernando Molina 95e7452d66 Merge pull request #1240 from Luis-Fernando-Molina/develop
Contribution: Status Labeling Improved
2021-06-27 05:59:37 -04:00
Luis Fernando Molina af49f70dd4 Status Labeling Improved 2021-06-27 11:59:18 +02:00
Luis Fernando Molina cb22ea7541 Merge pull request #1236 from Raplh2502/develop
Contribution: This is my contribution to Superalgos
2021-06-27 05:45:40 -04:00
Luis Fernando Molina 466b08abc7 Merge pull request #1239 from Luis-Fernando-Molina/develop
Contribution: Voting Program checked working well. Delegation Program Fixed
2021-06-27 05:44:33 -04:00
Luis Fernando Molina 9eb2d25c3f Voting Program checked working well. Delegation Program Fixed 2021-06-27 11:43:25 +02:00
Julian Molina d067bed510 Superalgos SA Token refactoring a Beta 11 logo 2021-06-27 11:05:17 +02:00
Julian Molina 1246035bbd Merge pull request #1237 from julian-molina/develop
Contribution: Governance Flow
2021-06-27 10:35:07 +02:00
Julian Molina d90f909c00 This is my contribution to Superalgos 2021-06-27 10:34:21 +02:00
Julian Molina 758f13fc2b This is my contribution to Superalgos 2021-06-27 10:26:30 +02:00
Julian Molina 84792f1bbd Governance Flow 2021-06-27 10:18:41 +02:00
Raplh2502 dd4d887489 This is my contribution to Superalgos 2021-06-27 00:34:21 +01:00
Julian Molina b6e7a0be4f Merge pull request #1233 from julian-molina/develop
Contribution: User Profile
2021-06-26 21:30:25 +02:00
Julian Molina 38db378f0d This is my contribution to Superalgos 2021-06-26 21:25:47 +02:00
Julian Molina 4c14f6f93d This is my contribution to Superalgos 2021-06-26 21:11:21 +02:00
Julian Molina 257bdac9c7 This is my contribution to Superalgos 2021-06-26 21:03:27 +02:00
Julian Molina e361365078 This is my contribution to Superalgos 2021-06-26 20:39:27 +02:00
Julian Molina 19a765feb9 This is my contribution to Superalgos 2021-06-26 20:34:04 +02:00
Luis Fernando Molina 4566fae6e1 Merge pull request #1228 from Smidy13/develop
Dependency Update: CCXT from 15.91.61 to 15.91.98
2021-06-26 14:19:37 -04:00
Luis Fernando Molina 686e6c0300 Merge pull request #1232 from Luis-Fernando-Molina/develop
Contribution: Support and Mentorship Program Checked
2021-06-26 14:18:26 -04:00
Luis Fernando Molina 3750629750 Delegation Program Debugged and Working well 2021-06-26 20:14:57 +02:00
Julian Molina 963c9d8a0e This is my contribution to Superalgos 2021-06-26 19:52:31 +02:00
Julian Molina 576e7cb3ad This is my contribution to Superalgos 2021-06-26 19:33:11 +02:00
Julian Molina dfd85d0175 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-26 19:11:26 +02:00
Julian Molina a151a381f0 This is my contribution to Superalgos 2021-06-26 19:07:14 +02:00
Julian Molina 36cdfc3112 This is my contribution to Superalgos 2021-06-26 19:00:57 +02:00
Julian Molina ec4c4239f4 This is my contribution to Superalgos 2021-06-26 18:53:38 +02:00
Julian Molina f17987410e User Profile 2021-06-26 18:32:57 +02:00
Luis Fernando Molina 685b223728 Workspace to facilitate debugging at the task server level 2021-06-26 17:51:12 +02:00
Luis Fernando Molina aab066aa64 Support and Mentorship Program Checked 2021-06-26 17:43:10 +02:00
Luis Fernando Molina 82e4b97e03 Merge pull request #1231 from Luis-Fernando-Molina/develop
Contribution: Restoring Lost File that facilitates debugging.
2021-06-26 11:34:40 -04:00
Luis Fernando Molina a66e007d50 Referral Program Checked 2021-06-26 17:34:19 +02:00
Julian Molina 9f362e89d6 Merge pull request #1230 from julian-molina/develop
Contribution: Governance Definitions
2021-06-26 17:19:51 +02:00
Julian Molina d56b825bdd This is my contribution to Superalgos 2021-06-26 17:18:03 +02:00
Julian Molina e41243cd2f This is my contribution to Superalgos 2021-06-26 17:12:28 +02:00
Julian Molina 4a5867d944 This is my contribution to Superalgos 2021-06-26 17:07:20 +02:00
Luis Fernando Molina b84729158f Restoring Lost File that facilitates debugging. 2021-06-26 16:52:03 +02:00
Julian Molina 3932bcf6a4 This is my contribution to Superalgos 2021-06-26 14:30:45 +02:00
Julian Molina fba63d84ea This is my contribution to Superalgos 2021-06-26 14:26:00 +02:00
Julian Molina adadddb611 This is my contribution to Superalgos 2021-06-26 14:17:21 +02:00
Julian Molina 3324c90747 This is my contribution to Superalgos 2021-06-26 14:02:09 +02:00
Julian Molina 6786f1f754 This is my contribution to Superalgos 2021-06-26 13:55:08 +02:00
Julian Molina e781805381 This is my contribution to Superalgos 2021-06-26 13:41:41 +02:00
Julian Molina f4f94f4f85 This is my contribution to Superalgos 2021-06-26 13:40:28 +02:00
Julian Molina a32416c64e This is my contribution to Superalgos 2021-06-26 13:38:29 +02:00
Julian Molina 7d32b716c4 This is my contribution to Superalgos 2021-06-26 13:34:44 +02:00
Julian Molina 90f068290b This is my contribution to Superalgos 2021-06-26 13:32:29 +02:00
Julian Molina 8b053f8b97 This is my contribution to Superalgos 2021-06-26 13:30:45 +02:00
Julian Molina 27024f0be0 Governance Definitions 2021-06-26 13:26:43 +02:00
Julian Molina 4798cdef28 Merge pull request #1229 from julian-molina/develop
Contribution: Introduction to Governance
2021-06-26 13:13:01 +02:00
Julian Molina 6d08bd413e This is my contribution to Superalgos 2021-06-26 13:12:24 +02:00
Julian Molina 1edcc74fd4 This is my contribution to Superalgos 2021-06-26 13:10:02 +02:00
Julian Molina 2295b6ad58 This is my contribution to Superalgos 2021-06-26 13:08:44 +02:00
Julian Molina b8103f0e7c This is my contribution to Superalgos 2021-06-26 13:04:11 +02:00
Julian Molina 272cfdb30a This is my contribution to Superalgos 2021-06-26 13:02:22 +02:00
Julian Molina 73be668fc1 This is my contribution to Superalgos 2021-06-26 11:07:36 +02:00
Julian Molina 1ef840cd02 This is my contribution to Superalgos 2021-06-26 11:03:05 +02:00
Julian Molina df2a2c41c4 Introduction to Governance 2021-06-26 11:01:21 +02:00
Smidy13 788839cc56 Merge branch 'develop' of https://github.com/Smidy13/Superalgos into develop 2021-06-26 16:22:54 +12:00
Smidy13 8c79115af9 Dependency Update: CCXT from 15.91.61 to 15.91.98 2021-06-26 16:22:36 +12:00
Luis Fernando Molina 0d904c242a Merge pull request #1226 from Luis-Fernando-Molina/develop
Contribution: Token Bonus Fixed
2021-06-25 10:54:35 -04:00
Luis Fernando Molina ba7e061a23 Token Bonus Fixed 2021-06-25 16:53:17 +02:00
Luis Fernando Molina 5114cd1f47 Merge pull request #1225 from Superalgos/plugins-docs
Plugins docs into develop
2021-06-25 04:46:35 -04:00
Luis Fernando Molina a4442eef5e Merge pull request #1224 from Luis-Fernando-Molina/plugins-docs
Contribution: Fixes Tutorial Bug, loading schemas breaking the JSON format at http interface
2021-06-25 04:45:26 -04:00
Luis Fernando Molina c7c1214e43 Fixes Tutorial Bug, loading schemas breaking the JSON format at http interface 2021-06-25 10:44:42 +02:00
Luis Fernando Molina 0e60a2f323 Refactoring of Projects still called Superalgos 2021-06-25 09:45:37 +02:00
Luis Fernando Molina 33a58c88f6 Merge pull request #1219 from thaissmolina75/plugins-docs
Contribution: spanish translation welcome tutorial
2021-06-25 03:32:07 -04:00
Luis Fernando Molina 28876851e7 Merge pull request #1223 from Luis-Fernando-Molina/plugins-docs
Contribution: Migration Code
2021-06-24 19:51:12 -04:00
Luis Fernando Molina b23e49a11b Migration Code 2021-06-25 01:50:40 +02:00
Luis Fernando Molina b891b13fc1 Revert "Migration Code"
This reverts commit 973ec3ddef.
2021-06-25 01:49:54 +02:00
Luis Fernando Molina 973ec3ddef Migration Code 2021-06-25 01:47:02 +02:00
Luis Fernando Molina 5d95b6fad1 Merge pull request #1221 from Luis-Fernando-Molina/develop
Contribution: Token Power Switch Made Recursive Descendants Fixed
2021-06-24 18:35:56 -04:00
Luis Fernando Molina ebdfcc3e56 Delegation Program Fixed 2021-06-25 00:34:09 +02:00
Luis Fernando Molina 45bbc0b368 Stacking Program Fixed 2021-06-25 00:32:04 +02:00
Luis Fernando Molina 28a89d012e Claims Program Fixed 2021-06-25 00:28:07 +02:00
Luis Fernando Molina 0570558293 Voting Power Fixed 2021-06-25 00:25:03 +02:00
Luis Fernando Molina d64cf914e2 Token Power Switch Made Recursive Descendants Fixed 2021-06-25 00:08:53 +02:00
thaissmolina75 5b59d0ebe0 french translation conflict fixed 2021-06-24 13:40:23 -04:00
Luis Fernando Molina d31407e063 Merge pull request #1220 from Luis-Fernando-Molina/develop
Contribution: APIs schema bug fix
2021-06-24 12:15:36 -04:00
Luis Fernando Molina 25e42e316d APIs schema bug fix 2021-06-24 18:15:10 +02:00
thaissmolina75 9d8ab73c29 french translation conflict fixed 2021-06-24 12:06:31 -04:00
thaissmolina75 2eb8e76000 spanish translation welcome tutorial 2021-06-24 11:48:20 -04:00
Luis Fernando Molina 796d066a6c Merge pull request #1217 from Luis-Fernando-Molina/develop
Contribution: Delegation Program Implemented
2021-06-24 10:26:27 -04:00
Luis Fernando Molina d2635919f6 Delegation Program fully implemented 2021-06-24 16:25:17 +02:00
Luis Fernando Molina 80184b6d2e user Delegates showing up 2021-06-24 16:21:06 +02:00
Luis Fernando Molina 0de05a8532 Delegation Program Implemented 2021-06-24 15:05:31 +02:00
Luis Fernando Molina 3157df712b Merge pull request #1216 from Luis-Fernando-Molina/develop
Contribution: Decendent Program
2021-06-24 06:31:55 -04:00
Luis Fernando Molina b0c1451fad Fixed 2021-06-24 12:31:39 +02:00
Luis Fernando Molina d2615078db Status and Values rearranged 2021-06-24 12:10:58 +02:00
Luis Fernando Molina 9db04e37ba profile reorganized 2021-06-24 11:55:19 +02:00
Luis Fernando Molina e9f862658f Bonus Working 2021-06-24 11:50:51 +02:00
Luis Fernando Molina 993ddb8790 mandatory programs removed 2021-06-24 11:42:47 +02:00
Luis Fernando Molina 2e16d90cf5 Non Mandatory Programs 2021-06-24 11:38:09 +02:00
Luis Fernando Molina d56ec6855f Bonus Program Implemented 2021-06-24 11:35:18 +02:00
Luis Fernando Molina 26c58ea965 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-24 10:06:07 +02:00
Luis Fernando Molina 7003e1d8dd Decendent Program 2021-06-24 10:05:32 +02:00
Luis Fernando Molina d977e3a5a8 Merge pull request #1215 from Raplh2502/develop
Contribution: Update of the Quasar datamine with finalization of FastTrend now fully functionnal, Introduction of total volume energy and volume buying energy ; Supertrend 9-2 and 14-3 are now operationnal
2021-06-24 04:01:11 -04:00
Raplh2502 5f6aa78bd6 Update of the Quasar datamine with finalization of FastTrend now fully functionnal, Introduction of total volume energy and volume buying energy ; Supertrend 9-2 and 14-3 are now operationnal 2021-06-23 22:17:51 +01:00
Julian Molina ea9d458356 Merge pull request #1214 from julian-molina/develop
Contribution: Governance Superalgos Pools and JM Profile
2021-06-23 21:12:39 +02:00
Julian Molina 4badc46160 Governance Superalgos Pools and JM Profile 2021-06-23 21:11:35 +02:00
Julian Molina 5d109c271d Merge pull request #1213 from julian-molina/plugins-docs
Contribution: Test
2021-06-23 19:30:59 +02:00
Julian Molina bf53bac167 Test 2021-06-23 19:30:05 +02:00
Luis Fernando Molina 62c9921beb Merge pull request #1212 from Superalgos/develop
Develop
2021-06-23 13:23:52 -04:00
Luis Fernando Molina 06fb9f9266 Merge pull request #1211 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed Claims
2021-06-23 13:22:23 -04:00
Luis Fernando Molina 5765014072 Bug Fixed Claims 2021-06-23 19:21:53 +02:00
Luis Fernando Molina 6037109eee Merge pull request #1210 from Superalgos/plugins-docs
Plugins-docs into Develop to have them both syncronized
2021-06-23 12:15:33 -04:00
Luis Fernando Molina 5070e3454b Merge pull request #1209 from Luis-Fernando-Molina/plugins-docs
Contribution: typos found at PR 1186 that could not be merged because of branch changes
2021-06-23 12:12:27 -04:00
Luis Fernando Molina 7fc57c4ada typos found at PR 1186 that could not be merged because of branch changes 2021-06-23 18:11:12 +02:00
Luis Fernando Molina 6fd070aa3e Merge pull request #1208 from Luis-Fernando-Molina/plugins-docs
Contribution: merge Plugins Docs PR Test
2021-06-23 12:05:50 -04:00
Luis Fernando Molina 216bfad7d3 Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-06-23 18:03:18 +02:00
Luis Fernando Molina 2aac12ab24 Merge pull request #1207 from Luis-Fernando-Molina/develop
Contribution: icon changed
2021-06-23 11:57:46 -04:00
Luis Fernando Molina 2ab52b7d8c icon changed 2021-06-23 17:57:27 +02:00
Luis Fernando Molina 8eb1c54e69 Merge pull request #1205 from Luis-Fernando-Molina/develop
Contribution: Governance Voting Program Improvements
2021-06-23 11:52:05 -04:00
Luis Fernando Molina 1013a47a37 Merge pull request #1206 from Smidy13/develop
Improvement: Lykke Icons, Alphabetical Ordering of Crypto Exchange Icons | Bug Fix: for OHLCV Pull | Dependency Update of CCXT
2021-06-23 11:51:32 -04:00
Smidy13 32b123123a Dependency Update: CCXT from v1.51.61 to v1.51.91 2021-06-23 23:15:56 +12:00
Smidy13 6e178fe3ec Bug Fix: Accept Empty OHLCV if at the Current Minute 2021-06-23 23:13:56 +12:00
Smidy13 fbf3bce170 Improvement: Lykke Icons, Alphabetical Ordering of Crypto Exchange Icons 2021-06-23 22:43:50 +12:00
Luis Fernando Molina 2a2698d4ba Labels Improved 2021-06-23 12:33:22 +02:00
Luis Fernando Molina 4638b624b0 Governance: standarizing Voting program 2021-06-23 12:15:12 +02:00
Luis Fernando Molina c0cd4e18dc File Ranamed 2021-06-23 11:52:23 +02:00
Luis Fernando Molina d345ee19a3 Governance Voting Program Improvements 2021-06-23 11:40:20 +02:00
Luis Fernando Molina 90ffa7b2d1 Merge pull request #1203 from harrellbm/develop
Pull in changes from Plugin-docs
2021-06-23 05:27:03 -04:00
Luis Fernando Molina daf330944a Merge pull request #1204 from Smidy13/develop
Improvement: Icons for All Tested Exchanges
2021-06-23 05:26:07 -04:00
Smidy 869f43c9af Merge branch 'Superalgos:develop' into develop 2021-06-23 20:11:09 +12:00
Smidy13 a5d1ed4dec Merge branch 'develop' of https://github.com/Smidy13/Superalgos into develop 2021-06-23 20:07:43 +12:00
Smidy13 4e30c1ed9b Improvement: Icons for All Tested Exchanges 2021-06-23 20:07:26 +12:00
Brenden Harrell 1b3b3b61e0 Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-06-22 22:51:45 -05:00
Brenden Harrell 6f4bc49014 Re-add API Demo and map fixs 2021-06-22 22:51:42 -05:00
B Harrell d7ea3162e2 Re-add ReadMe updates 2021-06-22 22:44:48 -05:00
Brenden Harrell ebf1589eab Pull in Updates to Debug docs by Smidy13 2021-06-22 22:38:18 -05:00
Brenden Harrell 66a5a3ec3d Update Custom Charts workspace 2021-06-22 22:30:31 -05:00
Luis Fernando Molina daa3eb8bad Merge pull request #1202 from Luis-Fernando-Molina/develop
Contribution: PLUGIN DOCS INTO DEVELOP: Bringing changes made into plugins docs branch into develop manually because of conflicts
2021-06-22 16:52:58 -04:00
Luis Fernando Molina e50f56ea44 PLUGIN DOCS MERGING INTO DEVELOP: French Translations 2021-06-22 22:42:36 +02:00
Luis Fernando Molina 8dc645345b PLUGIN DOCS MERGING INTO DEVELOP 2nd batch of typos and spelling fixes in general. 2021-06-22 22:34:46 +02:00
Luis Fernando Molina fc136169c4 PLUGINS DOCS MERGING INTO DEVELOP: First Batch of changes re-applied from Plugins Docs 2021-06-22 22:21:03 +02:00
Luis Fernando Molina 2c3ece8c39 Merge pull request #1197 from orenku/orenku/fix-mac-scroll
fix scroll bug on Mac
2021-06-22 12:00:52 -04:00
Luis Fernando Molina 13345ed9e4 Merge pull request #1194 from cozed-gh/develop
Data Mine: Add-Ons + Trading System example
2021-06-22 11:57:13 -04:00
Luis Fernando Molina 0752f06abf Merge pull request #1201 from Luis-Fernando-Molina/develop
Contribution: Voting Program next Iteration
2021-06-22 10:23:22 -04:00
Luis Fernando Molina 859f88dc01 Goverance Number Format Fixed to 2 decimals 2021-06-22 16:20:44 +02:00
Luis Fernando Molina a156fcff67 Voting Program next Iteration 2021-06-22 15:26:58 +02:00
Luis Fernando Molina 6c7db911cf Merge pull request #1200 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed, excluding Tokens Rewarded
2021-06-22 09:22:13 -04:00
Luis Fernando Molina 0633aead5c Bug Fixed, excluding Tokens Rewarded 2021-06-22 15:21:49 +02:00
Luis Fernando Molina c1afec7546 Merge pull request #1199 from Luis-Fernando-Molina/develop
Contribution: Governance: Claims Program working
2021-06-22 09:09:51 -04:00
Luis Fernando Molina 2ac532b604 Governance: Claims Program working 2021-06-22 15:09:27 +02:00
Luis Fernando Molina 4948e22858 Merge pull request #1198 from Luis-Fernando-Molina/develop
Contribution: Governance Claims Bug Fixed. Min includes claimsPower
2021-06-22 08:46:54 -04:00
Luis Fernando Molina 8272d1dc13 Governance Claims Bug Fixed. Min includes claimsPower 2021-06-22 14:45:44 +02:00
Oren Kedem 99f69a24c7 fix commit 2021-06-22 15:20:16 +03:00
Oren Kedem 8b2754ab0a add extra line 2021-06-22 15:18:51 +03:00
Oren Kedem e5511a1b03 remove extra line 2021-06-22 15:17:59 +03:00
Oren Kedem 2444587978 undo no related change in 'create-shortcut' 2021-06-22 15:17:01 +03:00
Luis Fernando Molina e5d3e2872c Merge pull request #1196 from Luis-Fernando-Molina/develop
Contribution: Refactoring Claims Program
2021-06-22 08:15:46 -04:00
Luis Fernando Molina 726834e7c7 Claim Power shown and being switched correctly 2021-06-22 14:15:17 +02:00
Oren Kedem c6128ffc96 Merge branch 'develop' into orenku/fix-mac-scroll 2021-06-22 14:56:11 +03:00
Luis Fernando Molina 24a89fcd96 Refactoring Claims Program 2021-06-22 12:58:58 +02:00
Luis Fernando Molina be940800a5 Merge pull request #1195 from Luis-Fernando-Molina/develop
Contribution: Claims Bug Fixed
2021-06-22 06:51:59 -04:00
Luis Fernando Molina d5e0db2a2a Claims Bug Fixed 2021-06-22 12:51:30 +02:00
cozed-gh c7bbfcb49a LiveTester Chart Scanner Trading Strategy Example 2021-06-22 12:44:06 +02:00
cozed-gh f5fc9a9a50 Indicator Add-Ons data mine (incl 5xCustom EMA)
Contains the LiveTester Indicator and 5xCustom EMA
2021-06-22 12:38:12 +02:00
Luis Fernando Molina 4f8c4f4f3f Merge pull request #1192 from Luis-Fernando-Molina/develop
Contribution: Types Mappings Adjusted
2021-06-22 05:37:56 -04:00
Luis Fernando Molina 2dd7f03c93 Types Mappings Adjusted 2021-06-22 11:37:15 +02:00
Luis Fernando Molina 75c2936c6c Merge pull request #1191 from Luis-Fernando-Molina/develop
Contribution: Governance: References Adjusted
2021-06-22 05:27:32 -04:00
Luis Fernando Molina c301b4ce0d Governance: References Adjusted 2021-06-22 11:26:59 +02:00
Luis Fernando Molina ced478fdca Merge pull request #1188 from Luis-Fernando-Molina/develop
Contribution: Governance Plugin reorganized
2021-06-21 17:33:10 -04:00
Luis Fernando Molina cfe0f5dd68 Governance Plugin reorganized 2021-06-21 15:45:24 +02:00
Luis Fernando Molina 4f9bca11f4 Merge pull request #1187 from Luis-Fernando-Molina/develop
Contribution: Governance Stacking Program Implemented
2021-06-21 09:26:24 -04:00
Luis Fernando Molina 2f824e1be2 Governance Stacking Program Implemented 2021-06-21 15:25:52 +02:00
Luis Fernando Molina 900d5eb327 Merge pull request #1185 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed loading plugin workspace
2021-06-21 07:58:06 -04:00
Luis Fernando Molina a29df33b95 Bug Fixed loading plugin workspace 2021-06-21 13:56:44 +02:00
Luis Fernando Molina 0471bcb75f Merge pull request #1182 from Luis-Fernando-Molina/develop
Contribution: Governance: Abstracting the mandatory Programs.
2021-06-21 07:06:23 -04:00
Luis Fernando Molina dadaa040b4 Merge pull request #1183 from Smidy13/develop
Improvement: Adding Future Support for OKEx 5
2021-06-21 07:06:14 -04:00
Luis Fernando Molina 3aa88f01da Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-21 13:04:55 +02:00
Luis Fernando Molina f7f3287379 Governance Mandatory Programs working. 2021-06-21 13:04:30 +02:00
Julian Molina 2f29279c97 Merge pull request #1184 from julian-molina/develop
Contribution: Governance icons by Hirajin Koizuko
2021-06-21 13:00:03 +02:00
Julian Molina 0c31599d19 Governance icons by Hirajin Koizuko 2021-06-21 12:55:15 +02:00
Luis Fernando Molina 5d87186127 reordering child nodes 2021-06-21 12:45:27 +02:00
Luis Fernando Molina 54efa67c9c Referral Program Re-Implemented 2021-06-21 12:35:40 +02:00
Luis Fernando Molina c315f1feef percentage at childs of mandatory programs implemented 2021-06-21 12:27:20 +02:00
Luis Fernando Molina 7bf9b0d245 typo fixed 2021-06-21 12:05:55 +02:00
Luis Fernando Molina e606fd5101 Token Power Switch Refactoring 2021-06-21 11:58:36 +02:00
Smidy 8b3c8910e1 Merge branch 'Superalgos:develop' into develop 2021-06-21 20:29:44 +12:00
Smidy13 c793cd2c2f Improvement: Adding Future Support for Icon for OKEx5 2021-06-21 20:29:20 +12:00
Luis Fernando Molina dae98d3fd4 Program Utility abstraction finished 2021-06-21 08:36:35 +02:00
Luis Fernando Molina b6ca4ae39d userNodeType refactoring 2021-06-21 08:33:55 +02:00
Luis Fernando Molina 8b9a34d5b6 userMentors refactoring 2021-06-21 08:31:44 +02:00
Luis Fernando Molina d6037100de More Refactoring 2021-06-21 08:25:47 +02:00
Luis Fernando Molina 17fc4188d7 refactoring programNode 2021-06-21 08:19:37 +02:00
Luis Fernando Molina 7683c15f8d programPowerName 2021-06-21 08:14:18 +02:00
Luis Fernando Molina ce0125a302 programNodeType 2021-06-21 08:09:32 +02:00
Luis Fernando Molina ba1adec98f Refactoring ProgramPower 2021-06-21 08:05:44 +02:00
Luis Fernando Molina a4e00bab11 Program Property Name 2021-06-21 08:02:01 +02:00
Luis Fernando Molina fa4633a1ef adding Mandatory 2021-06-21 07:57:32 +02:00
Luis Fernando Molina 017914cb18 Governance: Abstracting the mandatory Programs. 2021-06-21 07:55:36 +02:00
Luis Fernando Molina da4fa7bae9 Merge pull request #1157 from Raplh2502/develop
Contribution: This is my contribution to Superalgos
2021-06-21 01:08:05 -04:00
Luis Fernando Molina f726fb7294 Merge pull request #1180 from Luis-Fernando-Molina/develop
Contribution: Governance: Mentorship Program Implementation
2021-06-20 13:37:32 -04:00
Luis Fernando Molina 66e1af371c Mentorship Program Implementation first iteration finished 2021-06-20 19:36:06 +02:00
Raplh2502 b7bca38126 Delete launch.json 2021-06-20 19:12:03 +02:00
Luis Fernando Molina 83dd0e6174 Governance: Mentorship Program Implementation 2021-06-20 17:28:05 +02:00
Luis Fernando Molina 6a6cdd1a32 Merge pull request #1179 from Luis-Fernando-Molina/develop
Contribution: Governance: Utulity function added
2021-06-20 10:38:07 -04:00
Luis Fernando Molina 24d6947d36 Governance: Utulity function added 2021-06-20 16:35:16 +02:00
Luis Fernando Molina 943ce362e5 Merge pull request #1176 from Luis-Fernando-Molina/develop
Contribution: Governance Refactoring User Referrals into Referral Program
2021-06-20 08:43:42 -04:00
Luis Fernando Molina c068cb2d72 Governance Refactoring User Referrals into Referral Program 2021-06-20 14:42:36 +02:00
Luis Fernando Molina 7be103ef65 Merge pull request #1175 from Luis-Fernando-Molina/develop
Contribution: Governance: Making private the Profile Constructor node.
2021-06-20 08:12:35 -04:00
Luis Fernando Molina 0a91fa3e01 Governance: Making private the Profile Constructor node. 2021-06-20 14:12:06 +02:00
Luis Fernando Molina e69e3c6756 Merge pull request #1173 from harrellbm/develop
Update Charting Workspace for refactor, and reorganize some icons
2021-06-20 08:07:41 -04:00
Luis Fernando Molina 9695d7b84e Merge pull request #1174 from Smidy13/develop
Bug Fix: Play and Resume for Tutorial Step + Topic
2021-06-20 08:06:56 -04:00
Smidy13 5cfcd397a4 Improvement: Adding Visual Indicator when Finding Next OHLCV 2021-06-20 16:38:38 +12:00
Smidy13 34cedb77f3 Bug Fix: Play and Resume for Tutorial Step + Topic 2021-06-20 15:34:19 +12:00
Brenden Harrell 95d81ac9f8 Update Custom Chart Workspace 2021-06-19 20:31:58 -05:00
Brenden Harrell bf74302662 add and arange more icons 2021-06-19 20:31:34 -05:00
Luis Fernando Molina 26da36faa8 Merge pull request #1172 from harrellbm/develop
Bug Fix: Messari workspace and mine
2021-06-19 17:20:50 -04:00
B Harrell d760d301cb Merge branch 'Superalgos:develop' into develop 2021-06-19 14:57:49 -05:00
Brenden Harrell 6af5ea6c8c Fix Messari workspace and mine 2021-06-19 14:57:04 -05:00
Luis Fernando Molina a645b491be Merge pull request #1171 from Luis-Fernando-Molina/develop
Contribution: Goveranance: Contributions Folder refactored into Claims Folder
2021-06-19 13:20:21 -04:00
Luis Fernando Molina 5fe7dbdaf1 Goveranance: Contributions Folder refactored into Claims Folder 2021-06-19 19:19:59 +02:00
Luis Fernando Molina e9c2ca4ff5 Merge pull request #1170 from Luis-Fernando-Molina/develop
Contribution: Install Votes Upgraded to Install Missing Votes
2021-06-19 12:25:19 -04:00
Luis Fernando Molina f703a9093b Install Votes Upgraded to Install Missing Votes 2021-06-19 18:25:01 +02:00
Luis Fernando Molina 8eb3d835f5 Merge pull request #1169 from Luis-Fernando-Molina/develop
Contribution: Governance: Install Claims upgraded to Install Missing Claims
2021-06-19 12:17:08 -04:00
Luis Fernando Molina bb8082739a Governance: Install Claims upgraded to Install Missing Claims 2021-06-19 18:16:45 +02:00
Luis Fernando Molina 7b4f5766fb Merge pull request #1168 from Luis-Fernando-Molina/develop
Contribution: Governance: Install Claims Feature implemented
2021-06-19 11:52:00 -04:00
Luis Fernando Molina 52a40b00f2 Governance: Install Claims Feature implemented 2021-06-19 17:51:35 +02:00
Luis Fernando Molina 85823c45ff Merge pull request #1167 from Luis-Fernando-Molina/develop
Contribution: logs removed from web3 server
2021-06-19 10:03:26 -04:00
Luis Fernando Molina d6b573914e logs removed from web3 server 2021-06-19 16:03:06 +02:00
Luis Fernando Molina 9ff6457124 Merge pull request #1166 from Luis-Fernando-Molina/develop
Contribution: Splash Text implementation
2021-06-19 06:59:17 -04:00
Luis Fernando Molina d5a521c2fd Splash Text implementation 2021-06-19 12:57:44 +02:00
Luis Fernando Molina 61a4311bb4 Merge pull request #1162 from harrellbm/develop
Add basic System check to node setup command
2021-06-19 05:21:51 -04:00
Luis Fernando Molina 1d5099eed0 Merge pull request #1163 from Smidy13/develop
Improvement: Icons and Config for OKEx, Bug Fix: Status Text Offset
2021-06-19 05:21:08 -04:00
Luis Fernando Molina ef3655f318 Merge pull request #1165 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed with snapwhot feature replacing code
2021-06-19 05:15:50 -04:00
Luis Fernando Molina 1e27fd1de0 Bug Fixed with snapwhot feature replacing code 2021-06-19 11:14:53 +02:00
Luis Fernando Molina d3a8560dec Merge pull request #1164 from Luis-Fernando-Molina/develop
Contribution: Status at angle default fixed
2021-06-19 05:12:36 -04:00
Luis Fernando Molina faee98e2ab Status at angle default fixed 2021-06-19 11:08:03 +02:00
B Harrell c321034d69 Merge branch 'Superalgos:develop' into develop 2021-06-18 21:31:41 -05:00
B Harrell aea3e978b0 add check for windows path 2021-06-18 21:17:24 -05:00
Smidy13 b3849826e3 Bug Fix: Status Label Offset 2021-06-19 12:28:22 +12:00
Smidy13 8fd1030556 Improvement: Icons and Config for OKEX 2021-06-19 09:45:48 +12:00
Brenden Harrell 1164595d85 Shorten file name 2021-06-18 15:41:22 -05:00
Brenden Harrell 6357611caa More verbose error message 2021-06-18 11:03:10 -05:00
Brenden Harrell 6eb8745897 remove unused os module 2021-06-18 10:58:57 -05:00
Brenden Harrell 4f1a68363a Add white space to console output 2021-06-18 10:52:46 -05:00
Brenden Harrell c22f1338ce Add System check to beginning of node setup 2021-06-18 10:13:54 -05:00
Luis Fernando Molina 1e0f3c5c9d Merge pull request #1147 from orenku/develop
Add desktop launch icon during installation on macOS
2021-06-18 10:05:50 -04:00
Luis Fernando Molina 7d55dbd3a1 Merge pull request #1160 from harrellbm/master
Hot Fix CCXT 404 error
2021-06-18 09:53:30 -04:00
Luis Fernando Molina 3bd1eee1bb Merge pull request #1159 from harrellbm/develop
Add missing Icon, update CCXT across all node modules, and security audit dependencies
2021-06-18 09:50:34 -04:00
Luis Fernando Molina 2c98c7855f Merge pull request #1158 from wyattmcgehee/master
Dependabot
2021-06-18 09:49:19 -04:00
Brenden Harrell f8d46316c4 Update Founation sIcon Organization 2021-06-18 07:48:32 -05:00
Brenden Harrell 8b05b3ae8d Hot Fix CCXT 404 error 2021-06-18 07:08:24 -05:00
Brenden Harrell 7c55c818e3 Update CCXT across all node modules and match package.json with package-lock 2021-06-17 21:27:11 -05:00
Wyatt McGehee 733b050ad8 dependabot.yml
Remove duplicate in root, update in .github/ where it belongs.
2021-06-17 17:48:14 -07:00
Brenden Harrell 1de839406d re-add missing Superalgos icon 2021-06-17 19:23:40 -05:00
Wyatt McGehee 39a383b246 Update dependabot.yml 2021-06-17 16:46:34 -07:00
Wyatt McGehee 991ebf2d5f Update dependabot.yml 2021-06-17 16:44:02 -07:00
Wyatt McGehee 1090ecb6d6 Merge branch 'master' of https://github.com/wyattmcgehee/Superalgos 2021-06-17 16:00:17 -07:00
Wyatt McGehee fcea0470ad Merge pull request #1 from wyattmcgehee/dependabot-test
Create dependabot.yml
2021-06-17 14:30:27 -07:00
Wyatt McGehee 0136734f73 Create dependabot.yml 2021-06-17 14:29:50 -07:00
Luis Fernando Molina e372a32857 Merge pull request #1149 from ssplatt/coinbase-trade-sync
Sync trade calculations if the data is present
2021-06-17 15:29:09 -04:00
Julian Molina 0fb705b775 Merge pull request #1155 from julian-molina/develop
Contribution: Julian Molina Profile
2021-06-17 20:19:09 +02:00
Julian Molina 10debca24f Julian Molina Profile 2021-06-17 20:18:17 +02:00
Luis Fernando Molina 46d401ea1a Merge pull request #1154 from Luis-Fernando-Molina/develop
Contribution: GOvernance Bug Fix at request tos BSC SCAN breaking rate limit
2021-06-17 13:53:47 -04:00
Luis Fernando Molina 835d8368a9 Governance bug fixed with profile signing 2021-06-17 19:52:10 +02:00
Julian Molina b0fb856843 Merge pull request #1153 from julian-molina/develop
Contribution: README small updates
2021-06-17 19:31:38 +02:00
Luis Fernando Molina 22dc7a774c GOvernance Bug Fix at request tos BSC SCAN breaking rate limit 2021-06-17 19:29:20 +02:00
Julian Molina 26540757dc README small updates 2021-06-17 19:28:58 +02:00
Luis Fernando Molina 2495bbd97f bug fixed with requests to BSC SCAN 2021-06-17 19:20:27 +02:00
Julian Molina 0caf35299a Merge pull request #1152 from julian-molina/develop
Contribution: Julian Molina Profile
2021-06-17 19:05:21 +02:00
Julian Molina 2793ecf07d Julian Molina Profile 2021-06-17 19:04:11 +02:00
Luis Fernando Molina 4b688776d2 Merge pull request #1143 from Luis-Fernando-Molina/develop
Contribution: Governance: Reading token balance from the blockchain.
2021-06-17 10:04:38 -04:00
Luis Fernando Molina 226205413a Governance: Referral Program fully reimplemented. 2021-06-17 16:02:25 +02:00
Luis Fernando Molina 62f4f9c75f Merge pull request #1150 from Smidy13/develop
Bug Fix: Naming Status Reports
2021-06-17 08:49:06 -04:00
Smidy13 ddb15dbdc1 Bug Fix: Naming Status Reports 2021-06-17 19:51:16 +12:00
Brett Taylor a28b75a50b recalc orders if data is defined 2021-06-16 21:03:44 -04:00
Luis Fernando Molina 805f6d48f3 Referral Program reimplemented, without Token Rewards yet. 2021-06-17 02:38:59 +02:00
Raplh2502 1852c939b5 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-16 23:24:32 +01:00
Raplh2502 63d147131f Creation of a new data mine based on physics principles. First indicator created and functional but troubles with the chart 2021-06-16 22:52:50 +01:00
Luis Fernando Molina 5bac00777e Referral Program half way reimplemented 2021-06-16 20:10:57 +02:00
Luis Fernando Molina ac38f35c68 Voting Program Fixed 2021-06-16 18:41:21 +02:00
Luis Fernando Molina b8409025f3 Governance Token Power Distribution Implemented 2021-06-16 13:53:51 +02:00
Oren Kedem 32e8447daa Fix mac infinite scroll bug when using standard mouse 2021-06-16 11:36:20 +03:00
Oren Kedem 94f40cd337 rever previous commit 2021-06-16 11:30:30 +03:00
Oren Kedem 1bc5ba612c Fix mouse wheel performance on MAC, when using non-infinite scroll mouse devices 2021-06-16 11:25:56 +03:00
Oren Kedem 74f35535e8 Add new line at EOF 2021-06-16 10:15:04 +03:00
Oren Kedem 92632251a7 MAC Os - Create desktop shortcut during installation 2021-06-16 10:12:48 +03:00
Wyatt McGehee 6b4a7479e4 Create dependabot.yml 2021-06-15 20:29:50 -07:00
Luis Fernando Molina 02e23d2ab5 Governance: Programs Structure 2021-06-16 00:45:25 +02:00
Luis Fernando Molina d33c8390e7 Merge pull request #1146 from wyattmcgehee/develop
Update package-lock.json
2021-06-15 13:10:13 -04:00
Wyatt McGehee a4f5ab0e5b Update package-lock.json
Bump ccxt version. May need to update this dependency in other sub-projects soon.
2021-06-15 09:52:58 -07:00
Wyatt McGehee 2a2ef3781d Revert "Update package-lock.json"
This reverts commit e959765710.
2021-06-15 09:48:23 -07:00
Wyatt McGehee e959765710 Update package-lock.json
Update ccxt from 1.26.45 to 1.51.46
2021-06-15 09:42:29 -07:00
Luis Fernando Molina 12faa5b099 Governance: Signing of Profiles implemented 2021-06-15 17:32:37 +02:00
Luis Fernando Molina 323484f4d5 Merge pull request #1142 from Smidy13/develop
Dependency: Change TaskServer WS from 7.4.0 to 7.4.6
2021-06-14 18:44:26 -04:00
Julian Molina dad8168f02 Merge pull request #1144 from julian-molina/develop
Contribution: Client console logs
2021-06-14 23:07:07 +02:00
Julian Molina 2f29c80bd1 Client console logs 2021-06-14 23:03:31 +02:00
Luis Fernando Molina f0acdf1303 Bug Fixed breaking BSC Scan rate limit 2021-06-14 22:09:26 +02:00
Luis Fernando Molina 37ea7f735e Governance: Reading token balance from the blockchain. 2021-06-14 16:20:31 +02:00
Smidy13 95d85d43c1 Dependency: Change TaskServer WS from 7.4.0 to 7.4.6 2021-06-14 18:03:10 +12:00
Luis Fernando Molina 187fcbdd45 Merge pull request #1140 from Luis-Fernando-Molina/develop
Contribution: Tokens Awarded Calculation Implemented both for Claims AND Referrals
2021-06-13 19:00:35 -04:00
Luis Fernando Molina c8dd0cacff DeepScan bug fixes 2021-06-14 00:58:30 +02:00
Luis Fernando Molina 280c6b26d7 Tokens Awarded Calculation Implemented both for Claims AND Referrals 2021-06-14 00:54:37 +02:00
Luis Fernando Molina f0cfec5386 Merge pull request #1139 from Luis-Fernando-Molina/develop
Contribution: Governance: Referral Calculation Implemented
2021-06-13 15:42:08 -04:00
Luis Fernando Molina f3a375fd40 Claim Award Calculation Bug Fixed 2021-06-13 21:41:00 +02:00
Luis Fernando Molina 85bc313b89 Governance: Referral Calculation Implemented 2021-06-13 18:30:19 +02:00
Luis Fernando Molina b4f645e126 Merge pull request #1138 from Luis-Fernando-Molina/develop
Contribution: Superalgos Workspace completed with all assets structures
2021-06-12 22:53:26 -04:00
Luis Fernando Molina 8ca0c05a1f Superalgos Workspace completed with all assets structures 2021-06-13 04:51:44 +02:00
Luis Fernando Molina ddfbb0a5fe Merge pull request #1137 from Luis-Fernando-Molina/develop
Contribution: More Plugins Fixed
2021-06-12 21:16:02 -04:00
Luis Fernando Molina 3e5ae891e2 All Workspace Plugins with initial setup ready 2021-06-13 03:12:09 +02:00
Luis Fernando Molina 2743f4b3a4 More Plugins creaed for Governance 2021-06-13 02:46:32 +02:00
Luis Fernando Molina 94fa880ff4 More Plugins Fixed 2021-06-12 23:07:23 +02:00
Luis Fernando Molina 9fb55f539f Merge pull request #1134 from Luis-Fernando-Molina/develop
Contribution: Governance:New Plugins, Bug Fixes, etc
2021-06-12 16:42:02 -04:00
Luis Fernando Molina 120badb432 bug fixed at Getting Started Workspace, Key reference node was missing and prevented live trading. 2021-06-12 22:38:05 +02:00
Luis Fernando Molina 9e9bc84333 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-12 22:22:43 +02:00
Luis Fernando Molina a75e3e89a1 Merge branch 'master' into develop 2021-06-12 22:21:47 +02:00
Luis Fernando Molina 8ead73d8f5 Bug Fix: Key Reference Missing avoids running in Live. 2021-06-12 22:19:02 +02:00
Luis Fernando Molina 314359935b Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-12 19:04:34 +02:00
Luis Fernando Molina b5c85c7e5e Merge branch 'master' into develop 2021-06-12 19:02:54 +02:00
Luis Fernando Molina a4c7680f4b Hot Fix with references missing at the Trading Mine and Lighting Strike Formula with comments 2021-06-12 16:42:04 +02:00
Luis Fernando Molina 71905eabe2 Revert "Hot Fix: Solves 2 Bugs: Trading Mine not up tp date and the Lignting Strike."
This reverts commit e87704fe52.
2021-06-12 15:27:10 +02:00
Luis Fernando Molina f47a79778a Governance Bug Fixed Plugin File not attaching 2021-06-12 15:16:43 +02:00
Luis Fernando Molina 297768b947 Governance:New Plugins, Bug Fixes, etc 2021-06-12 15:09:55 +02:00
Luis Fernando Molina 88290c4ecc Merge pull request #1131 from Superalgos/dependabot/npm_and_yarn/Client/normalize-url-4.5.1
Bump normalize-url from 4.5.0 to 4.5.1 in /Client
2021-06-12 07:42:39 -04:00
Luis Fernando Molina 16cace9533 Merge pull request #1130 from Luis-Fernando-Molina/develop
Contribution: Governance: Install Votes Implemented
2021-06-11 21:24:39 -04:00
dependabot[bot] 158476c84c Bump normalize-url from 4.5.0 to 4.5.1 in /Client
Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/sindresorhus/normalize-url/releases)
- [Commits](https://github.com/sindresorhus/normalize-url/commits)

---
updated-dependencies:
- dependency-name: normalize-url
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-12 01:23:51 +00:00
Luis Fernando Molina 7f08741f40 Governance: Install Votes Implemented - Deep Scan Bug Fixed 2021-06-12 03:23:09 +02:00
Luis Fernando Molina ff90501e82 Merge pull request #1129 from ssplatt/docker-buildx
Create docker containers for multiple architectures
2021-06-11 21:21:57 -04:00
Luis Fernando Molina 66b9843466 Governance: Install Votes Implemented 2021-06-12 03:18:44 +02:00
ssplatt 046d628a42 final cleanup 2021-06-11 15:56:29 -04:00
ssplatt d525e8a10f no shortcuts 2021-06-11 15:19:38 -04:00
ssplatt 04edc7011e remove armv6 2021-06-11 15:07:39 -04:00
ssplatt 4da3e39e4a set specific platforms 2021-06-11 14:59:45 -04:00
ssplatt c675ed3a92 use bashism 2021-06-11 14:55:52 -04:00
ssplatt 5982f65852 try ref without quotes 2021-06-11 14:52:02 -04:00
ssplatt 99df705ba2 fix branch/git tag detection 2021-06-11 14:48:02 -04:00
ssplatt 66f6ce4d2a add buildx support 2021-06-11 14:39:39 -04:00
Luis Fernando Molina be7ef9fbd9 Reorganization into plugins and dirrefent workspaces 2021-06-11 20:14:12 +02:00
Luis Fernando Molina 786df087d4 Merge pull request #1127 from Smidy13/develop
Bug Fix: Failing to Load Plugins + Tutorials Not Playing
2021-06-11 06:28:02 -04:00
Smidy13 d80dca45c5 Bug Fix: Updating DEFAULT_LANGUAGE reference to new location under Education 2021-06-11 20:45:10 +12:00
Smidy13 5e392b9330 Revert "Upgrading WS Version to 7.4.6"
This reverts commit 22036f00e8.
2021-06-11 19:14:01 +12:00
Smidy13 22036f00e8 Upgrading WS Version to 7.4.6 2021-06-11 19:12:45 +12:00
Smidy13 70bcb9580f Bug Fix: Failing to Load Plugins + Tutorials Not Playing 2021-06-11 18:55:03 +12:00
Luis Fernando Molina ad21aa8eb1 Merge pull request #1125 from Luis-Fernando-Molina/develop
Contribution: actionProject Property missing at all projects except Foundations. Fixes Bug not adding or deleting nodes.
2021-06-10 20:54:06 -04:00
Luis Fernando Molina d1ffdb6704 actionProject Missing at Ethereum project 2021-06-11 02:51:34 +02:00
Luis Fernando Molina 3b653289f5 actionProject Missing at Education project 2021-06-11 02:46:36 +02:00
Luis Fernando Molina ce6c9e9f57 actionProject missing. Needed Foundations. at TensorFlow 2021-06-11 02:42:58 +02:00
Luis Fernando Molina 89fd47fc7b Action Project Missing, needed Foundations 2021-06-11 02:39:56 +02:00
Luis Fernando Molina 25d29311dd Revert "actionProject property missing"
This reverts commit 9850c4a0c6.
2021-06-11 02:36:51 +02:00
Luis Fernando Molina 9850c4a0c6 actionProject property missing 2021-06-11 02:30:05 +02:00
Luis Fernando Molina cc6fefc49e Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-11 01:25:27 +02:00
Luis Fernando Molina c940c88f9b Merge branch 'master' into develop 2021-06-11 01:25:08 +02:00
Luis Fernando Molina 56dcdbeacd Merge pull request #1123 from Smidy13/develop
Icon Fix for Getting Started Tutorials
2021-06-10 19:07:47 -04:00
Smidy13 6f4be89322 Icon Fix for Getting Started Tutorials 2021-06-11 10:50:24 +12:00
Luis Fernando Molina e87704fe52 Hot Fix: Solves 2 Bugs: Trading Mine not up tp date and the Lignting Strike. 2021-06-11 00:23:33 +02:00
Luis Fernando Molina bde8c178f4 Merge pull request #1122 from Luis-Fernando-Molina/develop
Contribution: Governance: Plugins Fully Implemented.
2021-06-10 18:15:35 -04:00
Luis Fernando Molina 8366600a5d deepScan bug fixed 2021-06-11 00:09:30 +02:00
Luis Fernando Molina fefe33ad75 Governance: Plugins Fully Implemented. 2021-06-10 23:14:29 +02:00
Luis Fernando Molina 8f91a04145 plugins can be be added the Governance Workspace 2021-06-10 22:29:50 +02:00
Luis Fernando Molina 1bf9e599ee Governance: Plugins Implementation Finished 2021-06-10 21:17:41 +02:00
Luis Fernando Molina 914920d2dd More on plugins 2021-06-10 20:46:09 +02:00
Luis Fernando Molina cbdb422398 Standarization and isMissingChildrenByType function added 2021-06-10 20:33:15 +02:00
Luis Fernando Molina 6121a6d7f9 Plugins Improvement 2021-06-10 20:30:26 +02:00
Luis Fernando Molina 57e5992875 standarizing funcition names 2021-06-10 20:01:03 +02:00
Luis Fernando Molina 9985a98942 Merge pull request #1121 from Luis-Fernando-Molina/develop
Contribution: BUG Fixed when a project Folder is empty. Now reading only the  Project Schema
2021-06-10 11:44:11 -04:00
Luis Fernando Molina f26b4c2dad BUG Fixed when a project Folder is empty. Now reading only the Project Schema 2021-06-10 17:43:01 +02:00
Luis Fernando Molina 82f0751702 Merge pull request #1120 from Luis-Fernando-Molina/develop
Contribution: Technical Debt Payment: Moving Docs and Tutorials to Education Project
2021-06-09 19:27:01 -04:00
Luis Fernando Molina 5afcc26061 BUG FIxed at the Trading Mine Master and the Lighting Network Strategy 2021-06-10 00:49:12 +02:00
Luis Fernando Molina a5d6f1b71e More Refactoring Fixes 2021-06-09 23:31:08 +02:00
Luis Fernando Molina 4365c94a00 Fixing Refactoring Errors 2021-06-09 22:36:16 +02:00
Luis Fernando Molina 87edcc043d HUGE Refactoring Superalgos Project to Foundations Project done 2021-06-09 22:21:01 +02:00
Luis Fernando Molina c9c0aeaca7 Docs and Tutorials completely separated into Education Project 2021-06-09 18:03:33 +02:00
Luis Fernando Molina b3840ad8db missing icons 2021-06-09 16:44:44 +02:00
Luis Fernando Molina e7d49e00d8 Moving some assets to Education project 2021-06-09 16:33:13 +02:00
Luis Fernando Molina f24f089794 Fine tunning 2021-06-09 15:24:30 +02:00
Luis Fernando Molina 71540e4b68 Technical Debt Payment: Moving Docs and Tutorials to Education Project 2021-06-09 15:18:07 +02:00
Luis Fernando Molina b503fb38f0 Merge pull request #1119 from Luis-Fernando-Molina/develop
Contribution: logs removed
2021-06-09 07:57:53 -04:00
Luis Fernando Molina e75c45293d logs removed 2021-06-09 13:57:09 +02:00
Luis Fernando Molina 6ee7c5beb2 Merge pull request #1118 from Luis-Fernando-Molina/develop
Contribution: Install Asset procedure implemented
2021-06-08 21:01:42 -04:00
Luis Fernando Molina 862e3e3e86 Install Asset procedure implemented 2021-06-09 03:00:26 +02:00
Luis Fernando Molina b30a6133b3 Merge pull request #1117 from Luis-Fernando-Molina/develop
Contribution: BUG FIX Icons not loading fordawrd turned into backlash at icon paths.
2021-06-08 16:08:10 -04:00
Luis Fernando Molina 2ccf2b9b20 BUG FIX Icons not loading fordawrd turned into backlash at icon paths. 2021-06-08 22:07:29 +02:00
Luis Fernando Molina 3261971bf7 Merge pull request #1116 from Luis-Fernando-Molina/develop
Contribution: BUG FIX logs enabled
2021-06-08 15:25:41 -04:00
Luis Fernando Molina 99ebe22860 BUG FIX logs enabled 2021-06-08 21:22:52 +02:00
Luis Fernando Molina bdbfcc817c Merge pull request #1115 from Luis-Fernando-Molina/develop
Contribution: BUG FIXED when deleting Votes Distribution nodes
2021-06-08 15:09:19 -04:00
Luis Fernando Molina a82db0a1b2 BUG FIXED when deleting Votes Distribution nodes 2021-06-08 21:08:48 +02:00
Luis Fernando Molina a6a6a9902d Merge pull request #1113 from Superalgos/next-version
Next version into Develop
2021-06-08 12:22:31 -04:00
Luis Fernando Molina cc2ef4243b Merge pull request #1112 from Luis-Fernando-Molina/next-version
Contribution: Workspace Plugin Updated
2021-06-08 12:20:21 -04:00
Luis Fernando Molina bed333a2e8 Workspace Plugin Updated 2021-06-08 18:17:34 +02:00
Luis Fernando Molina 099e41b9c8 Merge pull request #1111 from Luis-Fernando-Molina/next-version
Contribution: Huge Reorganization of Docs Schema Files into Folders and Subfolders
2021-06-08 09:53:11 -04:00
Luis Fernando Molina 6ccd5bd2f1 deep scan bug fixes 2021-06-08 15:52:26 +02:00
Luis Fernando Molina 63d2669a09 Huge Reorganization of Docs Schema Files into Folders and Subfolders 2021-06-08 15:49:03 +02:00
Luis Fernando Molina 8d1dbd1b06 Ready 2021-06-08 15:27:00 +02:00
Luis Fernando Molina 2f7853f552 Next try, maybe the last 2021-06-08 15:20:39 +02:00
Luis Fernando Molina 55938d0d24 Version to run the rearrangement of schemas 2021-06-08 14:35:06 +02:00
Luis Fernando Molina 18574aaa3e Update httpInterface.js 2021-06-08 14:26:01 +02:00
Luis Fernando Molina 977517f8ab Merge remote-tracking branch 'upstream/plugins-docs' into next-version 2021-06-08 14:10:21 +02:00
Luis Fernando Molina 5ca8680d98 Merge remote-tracking branch 'upstream/develop' into next-version 2021-06-08 14:09:46 +02:00
Luis Fernando Molina 3abeccf920 Merge pull request #1109 from Luis-Fernando-Molina/next-version
Contribution: Many Icons moved to inner folders
2021-06-08 08:05:59 -04:00
Luis Fernando Molina a1c246e8bf http fix 3 2021-06-08 04:46:32 +02:00
Luis Fernando Molina 2834cb729c http foxed again 2021-06-08 04:22:51 +02:00
Luis Fernando Molina 4185c233b3 http interface updated 2021-06-08 04:08:07 +02:00
Luis Fernando Molina aee40b84ea HTTP Internface fixed 2 2021-06-08 03:26:43 +02:00
Luis Fernando Molina cbfe9e1209 HTTP Internface fixed 2021-06-08 03:25:56 +02:00
Luis Fernando Molina df4ec3183b concept deleted 2021-06-08 02:25:57 +02:00
Luis Fernando Molina bd7f067d1c More icons reorganized 2021-06-08 02:04:46 +02:00
Luis Fernando Molina fce478ed64 Many Icons moved to inner folders 2021-06-07 22:33:44 +02:00
Luis Fernando Molina 8145c17dda Merge pull request #1108 from Luis-Fernando-Molina/next-version
Contribution: Bug fixed with attaching
2021-06-07 15:09:08 -04:00
Luis Fernando Molina 16d36a670e Icons can now be organized in subdirectories. 2021-06-07 21:08:41 +02:00
Luis Fernando Molina 69c59eddc3 Bug fixed with attaching 2021-06-07 17:14:33 +02:00
Luis Fernando Molina 605b0060ef Merge pull request #1107 from harrellbm/develop
Catch Error for Failure to Run Node Setup
2021-06-07 09:03:10 -04:00
Brenden Harrell ac9926488a Catch Error for Failure to Run Node Setup 2021-06-07 07:54:45 -05:00
Luis Fernando Molina 997832281a Merge pull request #1106 from harrellbm/plugins-docs
Rough Docs for Messari API Map and Mine
2021-06-07 08:31:58 -04:00
B Harrell 61d3acacac Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-06-07 07:29:13 -05:00
Brenden Harrell b503ffe392 Rough Docs for Messari API Map and Mine 2021-06-07 07:26:21 -05:00
Luis Fernando Molina 23ba403fd8 Merge pull request #1105 from Smidy13/develop
Remove Auto-Add for Social Bot Command
2021-06-07 07:38:55 -04:00
Smidy13 79d58631cb REmove Auto-Add for Social Bot Command 2021-06-07 21:34:05 +12:00
Luis Fernando Molina f52d5d8d5a Merge pull request #1103 from tikry2021/plugins-docs
Contribution: German Translation Trading Bot Layers Tutorial Part 1
2021-06-06 19:19:51 -04:00
Luis Fernando Molina 1227055ffc Merge pull request #1104 from Superalgos/master
Bringing bug fixes from master to develop. Plugin Workspace broken.
2021-06-06 19:18:50 -04:00
Luis Fernando Molina ece93f2135 BUG FIX - Plugin Workspace was broken 2021-06-07 01:15:41 +02:00
Till Rupp 5787e13f0c German Translation Trading Bot Layers Tutorial Part 1 2021-06-06 23:49:15 +02:00
Luis Fernando Molina 66e827727f Merge pull request #1102 from Superalgos/plugins-docs
Plugins docs Bug Fiexed with Resistances and Support and Docs updates
2021-06-06 16:31:45 -04:00
Luis Fernando Molina 0eae061db8 Merge pull request #1101 from Luis-Fernando-Molina/next-version
Contribution: Governance Reorg into Function Libraries
2021-06-06 15:40:41 -04:00
Luis Fernando Molina c7ddbaa0d1 Governance Demo Worksapce Plugin 2021-06-06 21:38:32 +02:00
Luis Fernando Molina 79020fea65 Claim Calculation Implemented 2021-06-06 21:11:31 +02:00
Luis Fernando Molina f712e1ee70 Ready to implement Claims 2021-06-06 19:38:40 +02:00
Luis Fernando Molina 0514361d30 Reorganization into function libraries complete 2021-06-06 19:13:52 +02:00
Luis Fernando Molina b60906915c Governance Reorg into Function Libraries 2021-06-06 18:54:28 +02:00
Luis Fernando Molina 42819693c0 Merge pull request #1100 from Luis-Fernando-Molina/next-version
Contribution: Governance Node's definition at the docs ready
2021-06-06 10:39:30 -04:00
Luis Fernando Molina 81b1c5a738 Governance Node's definition at the docs ready 2021-06-06 16:37:55 +02:00
Luis Fernando Molina 552b6b6e1d Merge pull request #1099 from Luis-Fernando-Molina/next-version
Contribution: Governance Node's documentation part 1
2021-06-06 09:55:06 -04:00
Luis Fernando Molina fa06764299 Governance Node's documentation part 1 2021-06-06 15:54:33 +02:00
Luis Fernando Molina 53f361570e Merge pull request #1097 from tikry2021/plugins-docs
Contribution: German Translation Hello World Tutorial
2021-06-06 09:09:17 -04:00
Luis Fernando Molina 69cf9adceb Merge pull request #1098 from Luis-Fernando-Molina/next-version
Contribution: Governance: One Icon per Node
2021-06-06 09:08:02 -04:00
Luis Fernando Molina db550bef7a Governance: One Icon per Node 2021-06-06 15:05:45 +02:00
Till Rupp 537c9b8563 German Translation Hello World Tutorial 2021-06-06 14:55:40 +02:00
Luis Fernando Molina c17cb6e0ba Merge pull request #1095 from Smidy13/plugins-docs
Improvement: Doco for Social Bot Command Node
2021-06-06 08:13:41 -04:00
Luis Fernando Molina 4bb99377ed Merge pull request #1094 from Smidy13/develop
Improvement: Social Bot Command Node
2021-06-06 08:12:57 -04:00
Luis Fernando Molina 5995f20582 Merge pull request #1096 from harrellbm/plugins-docs
Fix Status Dependency Bug in Resistance-Support
2021-06-06 08:11:49 -04:00
Brenden Harrell 91766a4fe2 Fix Status Dependency Bug in Resistance-Support 2021-06-06 06:44:08 -05:00
Smidy13 8f0c678f09 Improvement: Doco for Social Bot Command Node 2021-06-06 18:25:27 +12:00
Smidy13 2e32d102de Improvement: Social Bot Command Node 2021-06-06 18:22:16 +12:00
Luis Fernando Molina b710b0925f Merge pull request #1093 from Luis-Fernando-Molina/next-version
Contribution: token distribution and weight implemented
2021-06-05 22:25:39 -04:00
Luis Fernando Molina c07b8c5740 token distribution and weight implemented 2021-06-06 04:24:02 +02:00
Luis Fernando Molina 304be02a24 Merge pull request #1092 from Luis-Fernando-Molina/next-version
Contribution: Governance Weights Function Library Implemented
2021-06-05 20:50:35 -04:00
Luis Fernando Molina 2aa2f6ed2b Governance Weights Function Library Implemented 2021-06-06 02:49:51 +02:00
Smidy c7a229fe8a Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-06-06 10:27:16 +12:00
Luis Fernando Molina d304bf3673 Merge pull request #1091 from Luis-Fernando-Molina/next-version
Contribution: Vote Switching implemented
2021-06-05 17:10:57 -04:00
Luis Fernando Molina 9b76822a1c Merge pull request #1090 from NITEMAN/fix-docker-volumes
Fix docker volumes
2021-06-05 17:10:13 -04:00
Luis Fernando Molina c9757544cb Vote Switching implemented 2021-06-05 23:08:45 +02:00
Pedro González Serrano 6c073a672a Update docker directions to show docker-compose option 2021-06-05 21:37:05 +02:00
Pedro González Serrano 94d185a423 Use full paths for Docker volumes.
As discussed in Telegram witha @ssplatt
2021-06-05 21:31:02 +02:00
Luis Fernando Molina 34cc867eff Merge pull request #1089 from Luis-Fernando-Molina/develop
Contribution: Code Cleaning
2021-06-05 13:18:08 -04:00
Luis Fernando Molina f324612e53 Code Cleaning 2021-06-05 19:17:39 +02:00
Luis Fernando Molina a0d1ce3fc8 Merge pull request #1088 from Luis-Fernando-Molina/develop
Contribution: Client HTTP interface error handling improved
2021-06-05 11:29:33 -04:00
Luis Fernando Molina 6e4f3c4875 Client HTTP interface error handling improved 2021-06-05 17:29:05 +02:00
Luis Fernando Molina 8e6f322760 Merge pull request #1086 from Superalgos/develop
Develop into Plugins-docs
2021-06-05 10:36:07 -04:00
Luis Fernando Molina 5b52de8153 Merge pull request #1085 from Superalgos/develop
Beta 10 Release
2021-06-05 10:35:00 -04:00
Luis Fernando Molina db855b27ad Merge pull request #1084 from Superalgos/plugins-docs
Plugins docs into Develop
2021-06-05 10:26:45 -04:00
Luis Fernando Molina cabe806c1e Merge pull request #1083 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher Demo Workspace cleaned
2021-06-05 10:20:45 -04:00
Luis Fernando Molina 8e703c2f0a API Data Fetcher Demo Workspace cleaned 2021-06-05 16:16:33 +02:00
Luis Fernando Molina 928a548a38 Merge pull request #1082 from Luis-Fernando-Molina/next-version
Contribution: Governance Code added
2021-06-05 09:29:36 -04:00
Luis Fernando Molina 21fb258903 Governance Code added 2021-06-05 15:15:54 +02:00
Luis Fernando Molina 3cf13a37d0 Merge pull request #1081 from harrellbm/develop
Initial API Map and Mine docs edited and complete
2021-06-05 09:04:16 -04:00
Luis Fernando Molina cfa0a51fca Merge pull request #1078 from Smidy13/develop
Bug Fix: Display Error if Trading System Formula Evaluates as Undefined
2021-06-05 09:03:55 -04:00
B Harrell 15edbc807d Merge branch 'Superalgos:develop' into develop 2021-06-05 07:45:05 -05:00
Brenden Harrell cdb945b99b Initial API Map and Mine docs edited and complete 2021-06-05 07:43:54 -05:00
Julian Molina f18d9953ec Merge pull request #1079 from julian-molina/develop
Contribution: Small fixes to user variables docs
2021-06-05 12:21:32 +02:00
Julian Molina 1d2dc5a646 Merge branch 'develop' into develop 2021-06-05 12:21:23 +02:00
Julian Molina 4750803fae Small fixes to user variables docs 2021-06-05 12:19:45 +02:00
Smidy13 68697c7280 Bug Fix: Display Error if Trading System Formula Evaluates as Undefined 2021-06-05 16:51:25 +12:00
Luis Fernando Molina b3d37de39f Merge pull request #1077 from harrellbm/develop
Finish API Map node docs
2021-06-05 00:03:19 -04:00
Brenden Harrell ebe64b7f8e Finish API Map node docs 2021-06-04 22:41:48 -05:00
Julian Molina 1629752c80 Merge pull request #1076 from PLuv/develop
Change: Small change to complete user-defined-variables docs
2021-06-04 19:56:13 +02:00
Julian Molina b9647c1a35 Merge pull request #1075 from GENS-Tools/plugins-docs
Contribution: My Superalgos Review
2021-06-04 19:55:37 +02:00
Philip Love d0d25c42a3 Change: Small change to complete user-defined-variables docs 2021-06-04 13:45:39 -04:00
GENS-Tools 9c6a2a06a8 My Superalgos Review 2021-06-04 17:33:51 +02:00
Luis Fernando Molina a2c2e9e49c Merge pull request #1074 from harrellbm/develop
Optimize Coingecko API Map and Start on API Map docs
2021-06-03 23:04:27 -04:00
Brenden Harrell 25c007fb3f Start on API Map node docs 2021-06-03 21:49:34 -05:00
Brenden Harrell d3ff0c5c49 API Map config fix 2021-06-03 21:49:13 -05:00
Brenden Harrell b80b04a905 Optimize CoinGecko API Map with Query Parameters 2021-06-03 18:53:29 -05:00
Luis Fernando Molina 412133e558 Merge pull request #1068 from Luis-Fernando-Molina/next-version
Contribution: Governance Implementation
2021-06-03 18:23:35 -04:00
Luis Fernando Molina 4186fac706 Pools Implemented 2021-06-04 00:21:27 +02:00
Luis Fernando Molina 4994f03ff4 Pool Concept Introduced 2021-06-03 22:57:02 +02:00
Luis Fernando Molina 6c14a20679 All vote types implemented 2021-06-03 21:27:00 +02:00
Luis Fernando Molina 8f50c4295b Value at Angle Improvement 2021-06-03 20:59:53 +02:00
Luis Fernando Molina 60fdf78534 Position bug fixed 2021-06-03 19:52:09 +02:00
Luis Fernando Molina 135c795ed7 Organization Chart implemented 2021-06-03 19:38:43 +02:00
Luis Fernando Molina 58552862f2 Claims Implemented 2021-06-03 19:28:25 +02:00
Luis Fernando Molina 41dce98191 Votes Distribution and Contribution Claims 2021-06-03 18:50:12 +02:00
Luis Fernando Molina 537da88983 Governance: Users Votes Distribution Implemented 2021-06-03 16:11:27 +02:00
Luis Fernando Molina dc9fa31163 Merge pull request #1071 from Smidy13/develop
Bug Fix: Tutorials Load for Plugin Workspaces
2021-06-03 07:51:07 -04:00
Luis Fernando Molina bc121adef5 Merge pull request #1069 from harrellbm/develop
Harden replaceBy config options, update coingecko map and add docs
2021-06-03 07:50:18 -04:00
Julian Molina 8dd57b239e Merge pull request #1070 from PLuv/develop
Add: Pluvtech Data Mine Docs
2021-06-03 13:27:55 +02:00
Smidy13 98cca71c5a Bug Fix: Load Tutorials for Plugins Workspaces 2021-06-03 23:23:51 +12:00
Smidy13 42741386f3 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-03 21:40:41 +12:00
Smidy 3aebd10bf9 Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-06-03 21:33:56 +12:00
Philip Love 76120c1028 Add: Pluvtech Data Mine Docs 2021-06-03 01:13:14 -04:00
B Harrell ee955824fb Merge branch 'Superalgos:develop' into develop 2021-06-02 22:31:42 -05:00
Brenden Harrell c35727f919 Docs for CoinGecko Api Map and Mine 2021-06-02 22:22:26 -05:00
Brenden Harrell 13119ad755 Update CoinGecko Api Map 2021-06-02 22:20:15 -05:00
Brenden Harrell 39e567c057 Harden replaceBy config options 2021-06-02 22:19:56 -05:00
Luis Fernando Molina dd8176d34e setValue of Tokens implemented 2021-06-02 23:26:09 +02:00
Luis Fernando Molina 612b9f30ee Governance Implementation 2021-06-02 22:26:18 +02:00
Luis Fernando Molina a031a59b19 Merge pull request #1067 from Luis-Fernando-Molina/next-version
Contribution: All Structures are in place now
2021-06-02 16:15:31 -04:00
Luis Fernando Molina 316562ef7b All Structures are in place now 2021-06-02 22:12:32 +02:00
Luis Fernando Molina de4e257a7e Merge pull request #1066 from harrellbm/develop
Initial CoinGecko Api map and data mine
2021-06-02 15:45:27 -04:00
Brenden Harrell d2c49e91be Initial CoinGecko Api map and data mine 2021-06-02 12:54:12 -05:00
Luis Fernando Molina 0eefff8eef Merge pull request #1065 from Luis-Fernando-Molina/next-version
Contribution: Use Reference Parent Parent Parent Parent implemented
2021-06-02 13:31:45 -04:00
Luis Fernando Molina 270dcf7cb3 Use Reference Parent Parent Parent Parent implemented 2021-06-02 19:31:18 +02:00
Luis Fernando Molina 63c2b8dcf9 Merge pull request #1064 from harrellbm/develop
Fix Aggregate Avg and Min Methods
2021-06-02 12:36:45 -04:00
Brenden Harrell c88d398d5f Fix Aggregate Avg and Min Methods 2021-06-02 11:14:08 -05:00
Luis Fernando Molina 105cb7c020 Merge pull request #1063 from Luis-Fernando-Molina/next-version
Contribution: Gobernance: Project Setup ready to code Spaces
2021-06-02 12:03:37 -04:00
Luis Fernando Molina ca7db1e5e6 Gobernance: Project Setup ready to code Spaces 2021-06-02 18:02:26 +02:00
Julian Molina 76b6fa4eb3 Merge pull request #1062 from julian-molina/develop
Contribution: Getting started tutorials repagination
2021-06-02 17:43:46 +02:00
Julian Molina 36b5856bbc Getting started tutorials repagination 2021-06-02 17:34:11 +02:00
Luis Fernando Molina 67bb9a21ca Merge pull request #1060 from Luis-Fernando-Molina/next-version
Contribution: Governance Project setup
2021-06-02 11:32:11 -04:00
Luis Fernando Molina 9160dbe203 Governance: finding the right names for nodes 2021-06-02 17:31:10 +02:00
Julian Molina 6b29a47117 Merge pull request #1061 from julian-molina/develop
Contribution: Mention of API Maps in Basic Education
2021-06-02 17:26:23 +02:00
Julian Molina 4ac8f90eee Mention of API Maps in Basic Education 2021-06-02 17:07:21 +02:00
Luis Fernando Molina 5666455316 Governance Project setup 2021-06-02 16:45:00 +02:00
Brenden Harrell 9971d6aa16 Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-06-02 09:22:11 -05:00
Brenden Harrell 894eada595 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-02 09:20:40 -05:00
B Harrell b0000d1439 Merge branch 'Superalgos:develop' into develop 2021-06-02 09:19:14 -05:00
Luis Fernando Molina 7fda589615 Merge pull request #1059 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher bot Bug Fixed. Timestamp record property expected only as Number.
2021-06-02 08:12:11 -04:00
Luis Fernando Molina fab078f38f API Data Fetcher bot Bug Fixed. Timestamp record property expected only as Number. 2021-06-02 14:11:15 +02:00
Julian Molina 3b36eda278 Merge pull request #1058 from julian-molina/develop
Contribution: Styles in workspaces panel
2021-06-02 13:34:19 +02:00
Julian Molina a2c8d31bfc Styles in workspaces panel 2 2021-06-02 13:33:37 +02:00
Julian Molina 8ae34f3d4e Styles in workspaces panel 2021-06-02 13:29:37 +02:00
Julian Molina e4f3e9b807 Merge pull request #1057 from julian-molina/develop
Contribution: Exchanges reorg 2
2021-06-02 11:48:48 +02:00
Julian Molina f2dad9389e Continuing reorg 2021-06-02 11:46:26 +02:00
Julian Molina c860d14e1e Exchanges reorg 2 2021-06-02 11:31:58 +02:00
Julian Molina 6c4975d051 Merge pull request #1056 from julian-molina/develop
Contribution: Workspaces reorg
2021-06-02 11:16:27 +02:00
Julian Molina 08a82d52cd Workspaces reorg 2021-06-02 11:15:14 +02:00
Luis Fernando Molina 018718e340 Merge pull request #1055 from Luis-Fernando-Molina/next-version
Contribution: App Schemas Added
2021-06-01 20:53:07 -04:00
Luis Fernando Molina 34695c333b Reference Parent Find Node Type implemented 2021-06-02 02:50:12 +02:00
Luis Fernando Molina d55e7c952b App Schemas Added 2021-06-02 01:28:36 +02:00
Luis Fernando Molina 8e1b3f9571 Merge pull request #1049 from Luis-Fernando-Molina/next-version
Contribution: bug fixes at schema definitions
2021-06-01 17:08:57 -04:00
Luis Fernando Molina 17bba97219 more app schema nodes added 2021-06-01 23:06:49 +02:00
Brenden Harrell 1790cbf752 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-06-01 15:36:38 -05:00
Julian Molina 7723636f4b Merge pull request #1054 from julian-molina/develop
Contribution: Refactoring tradingEngine.current. - tradingEngine.tradingCurrent.
2021-06-01 22:14:27 +02:00
Julian Molina 2d7f2f7a79 Refactoring tradingEngine.current. - tradingEngine.tradingCurrent. 2021-06-01 21:59:05 +02:00
Julian Molina 804fa72d5f Merge pull request #1053 from julian-molina/develop
Contribution: Exchange Key Test workspace revision
2021-06-01 21:44:28 +02:00
Julian Molina f97b6286ec Exchange Key Test workspace revision 2021-06-01 21:36:26 +02:00
B Harrell 9afcbb56b4 Merge branch 'Superalgos:develop' into develop 2021-06-01 13:22:53 -05:00
Julian Molina 51f3119ad3 Merge pull request #1052 from julian-molina/develop
Contribution: BBTP finished
2021-06-01 18:27:52 +02:00
Julian Molina d936333bff BBTP finished 2021-06-01 18:23:12 +02:00
Julian Molina dc7d19efd9 Merge pull request #1051 from julian-molina/develop
Contribution:  TSDT finished
2021-06-01 16:44:42 +02:00
Julian Molina ebd825104c TSDT finished 2021-06-01 16:42:52 +02:00
Luis Fernando Molina 1e7a8869ed Merge pull request #1050 from Luis-Fernando-Molina/develop
Contribution: replaceBy config property extended
2021-06-01 10:31:51 -04:00
Luis Fernando Molina bac0e8be04 replaceBy config property extended 2021-06-01 16:28:39 +02:00
Luis Fernando Molina 550af617b5 bug fixes at schema definitions 2021-06-01 15:48:23 +02:00
Luis Fernando Molina dc4b30ec12 Merge pull request #1048 from Luis-Fernando-Molina/next-version
Contribution: More APP Schemas definitions
2021-06-01 09:39:04 -04:00
Luis Fernando Molina 7bea84d7d2 More APP Schemas definitions 2021-06-01 15:38:21 +02:00
Julian Molina e26e5664fc Merge pull request #1047 from julian-molina/develop
Contribution: WHB Workspace and Install Market tutorial ready
2021-06-01 13:12:54 +02:00
Julian Molina d252bb108c WHB Workspace and Install Market tutorial ready 2021-06-01 13:11:50 +02:00
Brenden Harrell c8443b0c68 Pull Dia Plugin 2021-05-31 18:07:35 -05:00
Brenden Harrell 91e112c756 Map and Mine for Initial Dia Data endpoint 2021-05-31 17:15:51 -05:00
Julian Molina a02f03b334 Merge pull request #1045 from julian-molina/develop
Contribution: TSDT 3rd tutorial
2021-05-31 21:49:06 +02:00
Julian Molina cf7c1652f8 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-05-31 21:48:18 +02:00
Julian Molina 598ebcefcc TSDT 3rd tutorial 2021-05-31 21:47:58 +02:00
Luis Fernando Molina 37e073868f Merge pull request #1044 from Luis-Fernando-Molina/next-version
Contribution: App Schema of some nodes
2021-05-31 14:52:23 -04:00
Luis Fernando Molina 40abe3a192 App Schema of some nodes 2021-05-31 20:51:48 +02:00
Luis Fernando Molina 7e5cb6bfdf Merge pull request #1043 from PLuv/develop
Modify: PluginFilePosition auto-spawn==true per Julian request
2021-05-31 14:49:06 -04:00
Philip Love d69e1ed670 Modify: PluginFilePosition auto-spawn==true per Julian request 2021-05-31 13:22:08 -04:00
Luis Fernando Molina fe615e979f Merge pull request #1042 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher replaceBy Config Property Extended
2021-05-31 12:17:58 -04:00
Luis Fernando Molina d26ce4bde1 Merge pull request #1041 from harrellbm/develop
Data mining Docs fixes and updates
2021-05-31 12:17:21 -04:00
Luis Fernando Molina e2dc178ec1 API Data Fetcher replaceBy Config Property Extended 2021-05-31 18:16:52 +02:00
Brenden Harrell 8127696f89 Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-05-31 10:33:50 -05:00
Brenden Harrell 5875921221 Small data mining docs addtions 2021-05-31 10:33:46 -05:00
B Harrell 449c49b552 Merge branch 'Superalgos:develop' into develop 2021-05-31 10:33:18 -05:00
Luis Fernando Molina b8211fa91b Merge pull request #1040 from Luis-Fernando-Molina/develop
Contribution: Docs Improved API Data Fetcher Bot not reference at API Map Reference node
2021-05-31 11:05:19 -04:00
Luis Fernando Molina 366336097e Docs Improved API Data Fetcher Bot not reference at API Map Reference node 2021-05-31 17:05:01 +02:00
Luis Fernando Molina 9620a6be4c Merge pull request #1039 from Superalgos/develop
Merge Develop into Next-Version
2021-05-31 10:01:15 -04:00
Luis Fernando Molina 597227353b Merge pull request #1038 from Luis-Fernando-Molina/develop
Contribution: -Version Branch added
2021-05-31 09:59:59 -04:00
Luis Fernando Molina 991f05c335 -Version Branch added 2021-05-31 15:56:40 +02:00
Luis Fernando Molina 8dcb1667c6 Merge pull request #1037 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher node initial value bug fixed
2021-05-31 08:54:12 -04:00
Luis Fernando Molina d8711f68b8 API Data Fetcher node initial value bug fixed 2021-05-31 14:53:35 +02:00
Luis Fernando Molina b4d8f0bba6 Merge pull request #1035 from Smidy13/develop
Bug Fix: Tutorial Reference Missing
2021-05-31 08:30:42 -04:00
Julian Molina b70b244ed0 Merge pull request #1036 from julian-molina/develop
Contribution: Trading system design tutorials, 2nd
2021-05-31 13:47:18 +02:00
Brenden Harrell b95fbf127d Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-05-31 06:40:05 -05:00
Brenden Harrell e11fe7ccd3 more typo fixes 2021-05-31 06:40:01 -05:00
B Harrell d08fd76f5e Merge branch 'Superalgos:develop' into develop 2021-05-31 06:37:31 -05:00
Julian Molina 792fef2371 Trading system design tutorials, 2nd 2021-05-31 13:07:42 +02:00
Smidy13 b85218705d Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-05-31 19:42:47 +12:00
Smidy13 fd130bffe2 Merge branch 'master' of https://github.com/Superalgos/Superalgos into develop 2021-05-31 19:41:54 +12:00
Smidy 2396381390 Merge branch 'Superalgos:develop' into develop 2021-05-31 19:22:34 +12:00
Smidy13 a182a2c3df Bug Fix: Tutorial Reference Missing 2021-05-31 19:11:21 +12:00
Luis Fernando Molina d72ee8ab8c Merge pull request #1034 from Superalgos/dependabot/npm_and_yarn/Client/ws-7.4.6
Bump ws from 7.2.3 to 7.4.6 in /Client
2021-05-30 19:41:22 -04:00
dependabot[bot] 1ba978d9f7 Bump ws from 7.2.3 to 7.4.6 in /Client
Bumps [ws](https://github.com/websockets/ws) from 7.2.3 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.2.3...7.4.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-30 23:19:05 +00:00
Julian Molina 2303e58844 Merge pull request #1033 from julian-molina/develop
Contribution: Beyond the basics review
2021-05-30 18:52:42 +02:00
Julian Molina 1b9c70e14b Beyond the basics review 2021-05-30 18:50:11 +02:00
Julian Molina 2694a6a401 Merge pull request #1032 from 9808us/develop
Hello World Workspace + Tutorial Fix for Beta10
2021-05-30 17:23:48 +02:00
Julian Molina 0484b55077 Merge pull request #1030 from RalfWeiss/plugins-docs
Contribution: My Superalgos Review
2021-05-30 17:23:23 +02:00
Julian Molina e68d3e4dfc Merge pull request #1026 from brombispi/plugins-docs
Contribution: Best Ever
2021-05-30 17:22:33 +02:00
9808us 94a6f7b8a8 Hello World Workspace + Tutorial Fix for Beta10 2021-05-30 16:55:22 +02:00
Luis Fernando Molina 2e28514a00 Merge pull request #1031 from 9808us/develop
Hello World Workspace fix for Beta10
2021-05-30 10:26:42 -04:00
9808us f468b146d9 Hello World Workspace Fix for Beta10 2021-05-30 16:24:24 +02:00
ralf 9532c6cdb7 My Superalgos Review 2021-05-30 15:36:25 +02:00
Julian Molina f5202e36d4 Merge pull request #1029 from julian-molina/develop
Contribution: Basic education revision complete
2021-05-30 15:01:53 +02:00
Julian Molina 9f10e4b83b Basic education revision complete 2021-05-30 15:00:27 +02:00
9808us d978df049e Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-05-30 13:49:40 +02:00
Julian Molina bea3bf2de4 Merge pull request #1028 from julian-molina/develop
Contribution: Basic Education pages + Masters data mine
2021-05-30 13:47:06 +02:00
Julian Molina bfc8e6931f Basic Education pages + Masters data mine 2021-05-30 13:45:43 +02:00
Julian Molina 13a2a26f73 Merge pull request #1027 from julian-molina/develop
Contribution: Welcome tutorial finished
2021-05-30 12:38:07 +02:00
Julian Molina 129001a041 Welcome tutorial finished 2021-05-30 12:35:27 +02:00
9808us 2638ad0c4d Merge branch 'master' of https://github.com/Superalgos/Superalgos into develop 2021-05-30 12:28:45 +02:00
Razvan Dumitru 8f761c5477 Best Ever 2021-05-30 09:39:04 +02:00
Razvan Dumitru b3f197482f Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-05-30 09:04:39 +02:00
Julian Molina 1f91a84654 Merge pull request #1017 from julian-molina/develop
Contribution: Welcome tutorial updates
2021-05-30 00:41:17 +02:00
Luis Fernando Molina 50546e05f2 Merge pull request #1025 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher Bot Demo Workspace Plugin updated
2021-05-29 16:18:16 -04:00
Luis Fernando Molina 79c79c54ef API Data Fetcher Bot Demo Workspace Plugin updated 2021-05-29 22:17:03 +02:00
Luis Fernando Molina 0e0c17b0f8 Merge pull request #1024 from Luis-Fernando-Molina/develop
Contribution: Plotting Improvements
2021-05-29 15:48:11 -04:00
Luis Fernando Molina 1538ab7f47 Plotting Improvements 2021-05-29 21:47:01 +02:00
Luis Fernando Molina fd599c254e Merge pull request #1022 from PLuv/develop
Docs Updates
2021-05-29 12:41:10 -04:00
Philip Love f97a35b005 Update: Docs for Close Stage Behaviour 2021-05-29 11:10:24 -04:00
Philip Love fa64a8d37b Update: Some Docs Definitions 2021-05-29 10:56:17 -04:00
Philip Love 6b2d6847c7 Merge remote-tracking branch 'upstream/develop' into develop 2021-05-29 10:54:15 -04:00
Brenden Harrell 2f47213ab8 Type Fixes 2021-05-29 08:35:40 -05:00
Luis Fernando Molina f814a03e0a Merge pull request #1020 from harrellbm/develop
Add Package.json for API Data Fetcher Dep Install
2021-05-29 09:04:51 -04:00
Luis Fernando Molina fbf6bd9339 Merge pull request #1021 from Luis-Fernando-Molina/develop
Contribution: Docs Imprevementes - Questions Answered
2021-05-29 09:03:23 -04:00
Luis Fernando Molina c7534a3a8e Docs Imprevementes - Questions Answered 2021-05-29 15:02:18 +02:00
Brenden Harrell f00cbc0409 Add Package.json for API Data Fetcher Dep Install 2021-05-28 22:08:26 -05:00
Smidy 8f82dc8403 Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-05-29 13:16:23 +12:00
Philip Love ae0018348f Docs: user-defined-variables 2021-05-28 21:04:57 -04:00
Luis Fernando Molina 5fc83ea7eb Merge pull request #1018 from harrellbm/develop
Finish Initial Data Mining Docs Edit
2021-05-28 19:41:26 -04:00
Brenden Harrell 0edf17e5f1 Finish initial edit of data mining docs 2021-05-28 17:04:49 -05:00
Brenden Harrell 4a885047a5 Data Mining Docs Edit pp 11-15 2021-05-28 15:39:07 -05:00
Julian Molina 92295f3f3c Welcome tutorial updates 2021-05-28 22:36:12 +02:00
Luis Fernando Molina d69cefecb5 Merge pull request #1016 from harrellbm/develop
Data Mining Edit pp 6-10
2021-05-28 13:53:13 -04:00
B Harrell 12ea0c809b Merge branch 'Superalgos:develop' into develop 2021-05-28 12:44:13 -05:00
Brenden Harrell 33bffbbd5e Data Mining Edit pp 5-10 2021-05-28 12:42:54 -05:00
Luis Fernando Molina 55cb35be44 Merge pull request #1015 from Luis-Fernando-Molina/develop
Contribution: https module replaced by node-fetch, plus bug fixes at API Data Fetcher Bot
2021-05-28 13:12:23 -04:00
Luis Fernando Molina 6130e9e1e5 https module replaced by node-fetch, plus bug fixes at API Data Fetcher Bot 2021-05-28 19:10:51 +02:00
Julian Molina 82e4a1f141 Merge pull request #1014 from julian-molina/develop
Contribution: Delete workspace
2021-05-28 17:40:18 +02:00
Julian Molina 011c5fc5e0 Delete workspace 2021-05-28 17:39:42 +02:00
Luis Fernando Molina e897a554c6 Merge pull request #1013 from Jefferson111/plugins-docs
Contribution: My Superalgos Review
2021-05-28 10:49:28 -04:00
Jefferson111 89b52f3edc My Superalgos Review 2021-05-28 22:46:22 +08:00
Luis Fernando Molina 19455657ab Merge pull request #1002 from PLuv/develop
Manage Stage No longer required to exist ; Close-Stage now closes strategy if no Target asset exists to Trade
2021-05-28 10:44:17 -04:00
Luis Fernando Molina 0658d2d284 Merge pull request #1012 from harrellbm/develop
Update Charting Workspace for Mine Split and Edit Data Docs PP 1-5
2021-05-28 10:43:06 -04:00
Brenden Harrell 4b21756d1d Edit and Style PP 1-5 Data Mining Docs 2021-05-28 09:39:22 -05:00
Luis Fernando Molina 167a9bedd1 Merge pull request #1011 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed Bollinger Bands Processes Failing after Master Data Mine Split
2021-05-28 10:37:31 -04:00
Luis Fernando Molina 8993f50169 Bug Fixed Bollinger Bands Processes Failing after Master Data Mine Split 2021-05-28 16:35:56 +02:00
Luis Fernando Molina 1ee6040f0f Merge pull request #1009 from Luis-Fernando-Molina/develop
Contribution: Default Workspace renamed
2021-05-28 10:05:32 -04:00
Luis Fernando Molina 5d5c04bc41 Default Workspace renamed 2021-05-28 16:05:08 +02:00
Luis Fernando Molina b89de0b437 Merge pull request #1008 from Luis-Fernando-Molina/develop
Contribution: BUG Fixed Tutorial Previous after Resume sending you to the begining
2021-05-28 09:56:36 -04:00
Luis Fernando Molina ec7654a9b7 BUG Fixed Tutorial Previous after Resume sending you to the begining 2021-05-28 15:55:09 +02:00
Julian Molina ae379e3086 Merge pull request #1007 from julian-molina/develop
Contribution: Getting Started Tutorials workspace revision
2021-05-28 15:32:09 +02:00
Julian Molina 91d990759b Getting Started Tutorials workspace and updates 2021-05-28 15:31:08 +02:00
Julian Molina 06d7679684 Getting Started Tutorials workspace revision 2021-05-28 15:20:37 +02:00
B Harrell 88826a90c7 Merge branch 'Superalgos:develop' into develop 2021-05-28 06:13:43 -05:00
Julian Molina bb9f5e391d Merge pull request #1006 from 9808us/develop
Misspelling Fix
2021-05-28 13:08:16 +02:00
9808us 4876963d85 Misspelling Fix 2021-05-28 13:05:20 +02:00
Julian Molina 6f1cdf099d Merge pull request #1005 from julian-molina/develop
Contribution: Getting started workspace
2021-05-28 10:05:24 +02:00
Julian Molina 838e01e358 Getting started workspace 2021-05-28 09:26:07 +02:00
Luis Fernando Molina 312d0740c6 Merge pull request #1004 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher Demo Plugin Upated
2021-05-28 00:32:51 -04:00
Luis Fernando Molina 17f0a3631f API Data Fetcher Demo Plugin Upated 2021-05-28 06:31:25 +02:00
Brenden Harrell 3e45c646d8 Update Workspace and Tutorial for Masters Split 2021-05-27 22:32:41 -05:00
Luis Fernando Molina fd54e62137 Merge pull request #1003 from Luis-Fernando-Molina/develop
Contribution: API Maps now can be Plugins
2021-05-27 22:02:34 -04:00
Luis Fernando Molina 2a16d70393 API Maps now can be Plugins 2021-05-28 04:01:04 +02:00
Philip Love d633fb1ef3 Fix: Close-Stage not closing strategy in event no Target Asset available to be traded; Open-Stage force to closing when Close-Stage in Opening 2021-05-27 21:11:33 -04:00
Philip Love 7d4804940d Merge remote-tracking branch 'upstream/develop' into develop 2021-05-27 20:50:34 -04:00
Luis Fernando Molina 3a603a067d Merge pull request #1001 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher feature parameters with default values at the API Map
2021-05-27 20:31:35 -04:00
Luis Fernando Molina dfff4b387d API Data Fetcher DeepScan Bugs Fixed 2021-05-28 02:29:46 +02:00
Luis Fernando Molina d24604ec24 API Data Fetcher feature parameters with default values at the API Map 2021-05-28 02:05:22 +02:00
Luis Fernando Molina 126ea143a3 Merge pull request #1000 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher Bot Resilience Improved: No Connection Exception Handled
2021-05-27 15:04:14 -04:00
Luis Fernando Molina b7f36f8d4c New Troubleshooting Page 2021-05-27 21:03:08 +02:00
Luis Fernando Molina ad8c47abc3 API Data Fetcher Bot Resilience Improved: No Connection Exception Handled 2021-05-27 20:12:05 +02:00
Luis Fernando Molina 304e1cf5ad Merge pull request #999 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed at Dataset Type Converter
2021-05-27 11:54:00 -04:00
Luis Fernando Molina 128c4c14fb Bug Fixed at Dataset Type Converter 2021-05-27 17:45:37 +02:00
Luis Fernando Molina 0906b748ee Merge pull request #998 from Luis-Fernando-Molina/develop
Contribution: Node Docs Improved
2021-05-27 09:09:47 -04:00
Luis Fernando Molina 87116a5983 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-05-27 15:08:24 +02:00
Luis Fernando Molina b904277d8d Node Docs Improved 2021-05-27 15:07:58 +02:00
Julian Molina c00ef37516 Merge pull request #997 from julian-molina/develop
Contribution: Getting started provisional workspace
2021-05-27 11:53:57 +02:00
Julian Molina ac8556d18e Getting started provisional workspace 2021-05-27 11:52:11 +02:00
Philip Love 156786f8a7 Fix: Manage-Stage no longer needs to exist per the docs 2021-05-26 23:16:40 -04:00
Luis Fernando Molina 2be56c941e Merge pull request #996 from Luis-Fernando-Molina/develop
Contribution: Bug Fixed, Removing Masters Hardcoded name after Masters Data Mine splitted
2021-05-26 18:29:54 -04:00
Luis Fernando Molina 136f72c906 Bug Fixed, Removing Masters Hardcoded name after Masters Data Mine splitted 2021-05-27 00:26:22 +02:00
Luis Fernando Molina bcc103c73e Merge pull request #995 from Luis-Fernando-Molina/develop
Contribution: bug fixed Custom Plotters Code Moved
2021-05-26 17:05:27 -04:00
Luis Fernando Molina 74bdae6681 bug fixed Custom Plotters Code Moved 2021-05-26 23:03:13 +02:00
Luis Fernando Molina 37d510003f Merge pull request #994 from Luis-Fernando-Molina/develop
Contribution: bug fixed Plotters with hardcoded Data Mine Name
2021-05-26 16:50:18 -04:00
Luis Fernando Molina 11d48f3c0e bug fixed Plotters with hardcoded Data Mine Name 2021-05-26 22:49:15 +02:00
Luis Fernando Molina 2a35196c64 Merge pull request #993 from Luis-Fernando-Molina/develop
Contribution: bug fixed Bollinger Bands with hardcoded Data Mine Name
2021-05-26 16:12:11 -04:00
Luis Fernando Molina f52aaa40fd bug fixed Bollinger Bands with hardcoded Data Mine Name 2021-05-26 22:09:44 +02:00
Luis Fernando Molina 1c72dfaea1 Merge pull request #992 from Luis-Fernando-Molina/develop
Contribution: bug fixed Candles Volumes with hardcoded Data Mine Name
2021-05-26 15:41:30 -04:00
Luis Fernando Molina 178caee4b8 bug fixed Candles Volumes with hardcoded Data Mine Name 2021-05-26 21:34:46 +02:00
Luis Fernando Molina 6f58f3cc3f Merge pull request #990 from harrellbm/develop
Edit Refactor section of Readme
2021-05-26 15:05:36 -04:00
Luis Fernando Molina a9c1d15823 Merge pull request #991 from Luis-Fernando-Molina/develop
Contribution: New Superalgos Concepts at the Docs
2021-05-26 14:59:14 -04:00
Luis Fernando Molina 1a582183d0 bug fixed Exchange Raw Data with hardcoded mine name 2021-05-26 20:58:22 +02:00
Luis Fernando Molina 08e2e0f96f New Superalgos Concepts at the Docs 2021-05-26 20:37:59 +02:00
B Harrell 58b2e7d69e Edit Refactor section of Readme 2021-05-26 13:01:44 -05:00
Luis Fernando Molina 513c0fef75 Merge pull request #989 from harrellbm/develop
Clarify Readme language
2021-05-26 13:38:55 -04:00
B Harrell a48f7f6f05 Clarify Readme language 2021-05-26 12:26:19 -05:00
Luis Fernando Molina de873393f6 Update README.md 2021-05-26 18:48:18 +02:00
Luis Fernando Molina 9233783ded Merge pull request #988 from Luis-Fernando-Molina/develop
Contribution: Huge Refactoring Multi-Perio into Multi Time Frame
2021-05-26 12:46:48 -04:00
Luis Fernando Molina c77999c8e4 Huge Refactoring Multi-Perio into Multi Time Frame 2021-05-26 18:05:11 +02:00
Luis Fernando Molina 1b47e77a83 Merge pull request #987 from Superalgos/plugins-docs
Plugins docs into Develop in preparation for release of Beta 10
2021-05-26 10:09:14 -04:00
Luis Fernando Molina 530c87bfb6 Merge pull request #985 from julian-molina/plugins-docs
Contribution: Beyond the Basics tutorial...
2021-05-26 10:06:57 -04:00
Luis Fernando Molina 2907b9bf39 Merge pull request #983 from Luis-Fernando-Molina/develop
Contribution: Docs Inproved
2021-05-26 10:04:28 -04:00
Luis Fernando Molina c44b42b7a0 Merge pull request #986 from harrellbm/develop
Add Note for Setup Script to ReadMe
2021-05-26 10:02:40 -04:00
B Harrell 48a289085e Add Setup Script note to ReadMe 2021-05-26 08:06:04 -05:00
Julian Molina f24276a3da Beyond the Basics tutorial... 2021-05-26 14:02:38 +02:00
Julian Molina 622e8f83de Merge pull request #984 from julian-molina/plugins-docs
Contribution: Charts tutorial fixes
2021-05-26 09:28:56 +02:00
Julian Molina bb4954de9b Charts tutorial fixes 2021-05-26 09:27:53 +02:00
Luis Fernando Molina 82751bd9ba Docs Inproved 2021-05-26 04:03:46 +02:00
Luis Fernando Molina c9b0685db0 Merge pull request #982 from harrellbm/plugins-docs
Final Touches on First Charting Space Tutorial
2021-05-25 22:00:22 -04:00
B Harrell 3f3b08e578 Merge branch 'Superalgos:develop' into develop 2021-05-25 20:24:53 -05:00
Brenden Harrell f3685ffc4a Final Listing of First Charting Space Tutorial 2021-05-25 20:20:04 -05:00
Brenden Harrell 02986a1879 Update Tutorial Step for Binance.com 2021-05-25 19:47:51 -05:00
Brenden Harrell 2d9da9380c Update Workspace 2021-05-25 19:44:36 -05:00
Brenden Harrell c863353fce Update Tutorial Page 2021-05-25 18:54:41 -05:00
Brenden Harrell 01c4853fba Rename Charting Space Tutorial 2021-05-25 18:47:30 -05:00
Luis Fernando Molina 6788f1653d Merge pull request #981 from Luis-Fernando-Molina/develop
Contribution: API Fetcher Bot docs polishing iteration finished
2021-05-25 17:40:38 -04:00
Luis Fernando Molina 72c3e3d6ec API Fetcher Bot DeepScan Bug Fixed 2021-05-25 23:39:18 +02:00
Luis Fernando Molina 909412eeb9 API Fetcher Bot docs polishing iteration finished 2021-05-25 23:35:25 +02:00
B Harrell a08860d9fc Revert "Add Back tfjs Source Files"
This reverts commit 8ca90466e4.
2021-05-25 11:05:23 -05:00
B Harrell 42276e9c65 Revert "Remove TensorFlow Project from Setup Process"
This reverts commit f1cc1caf20.
2021-05-25 11:05:06 -05:00
B Harrell 6cdcbcede7 Revert "TensorFlow Source files"
This reverts commit cab277cf2c.
2021-05-25 11:04:58 -05:00
B Harrell f1da5ab2f0 Revert "TensorFlow Source"
This reverts commit e1791c2630.
2021-05-25 11:04:52 -05:00
B Harrell bcf55dfded Revert "Tensorflow Source"
This reverts commit a58bf292a9.
2021-05-25 11:04:46 -05:00
B Harrell 18ad1ad641 Revert "TensorFlow Source"
This reverts commit 3d3ab2548d.
2021-05-25 11:04:38 -05:00
B Harrell 58be63eca6 Revert "TensorFlow Source"
This reverts commit 8c7ff0c1d9.
2021-05-25 11:04:28 -05:00
B Harrell c83fab32a9 Revert "TensorFlow Source"
This reverts commit 45a00fb17f.
2021-05-25 11:04:19 -05:00
B Harrell c4269bbd3a Revert "TensorFlow Source"
This reverts commit 12d53f218e.
2021-05-25 11:04:10 -05:00
B Harrell bc9d981422 Revert "TensorFlow source"
This reverts commit 938b5fbfb4.
2021-05-25 11:04:03 -05:00
B Harrell ad1ad9bb27 Revert "TensorFlow Source"
This reverts commit 6c046725e5.
2021-05-25 11:03:55 -05:00
B Harrell 702fe61068 Revert "TensorFlow Linux Binaries"
This reverts commit 244c43a20e.
2021-05-25 11:03:45 -05:00
B Harrell 270bf7b96e Revert "TensorFlow Linux Binaries"
This reverts commit 59534f0846.
2021-05-25 11:03:39 -05:00
B Harrell a92ae52de0 Revert "TensorFlow Binary"
This reverts commit 74ad625e53.
2021-05-25 11:03:31 -05:00
B Harrell f19065dc2a Revert "Remove gitattributes"
This reverts commit 683d6d2948.
2021-05-25 11:03:24 -05:00
B Harrell ed3920b245 Revert "Revert Setup Process"
This reverts commit 044e2b63e9.
2021-05-25 11:03:12 -05:00
B Harrell 6088d1d50a Revert "Revert gitignore"
This reverts commit 9133f2cc73.
2021-05-25 11:03:04 -05:00
B Harrell 1c44426ff2 Revert "Remove tfjs-node Deps"
This reverts commit 831437c1aa.
2021-05-25 11:02:48 -05:00
B Harrell 076800ed2d Revert "Remove more node_module deps"
This reverts commit 2fca1d5e74.
2021-05-25 11:02:34 -05:00
B Harrell 0f0b8c0339 Revert "Finish removing tfjs-node"
This reverts commit 9ea4666211.
2021-05-25 11:02:13 -05:00
Brenden Harrell 9ea4666211 Finish removing tfjs-node 2021-05-25 10:49:15 -05:00
Brenden Harrell 2fca1d5e74 Remove more node_module deps 2021-05-25 10:48:22 -05:00
Brenden Harrell 831437c1aa Remove tfjs-node Deps 2021-05-25 10:47:22 -05:00
Brenden Harrell 9133f2cc73 Revert gitignore 2021-05-25 10:43:45 -05:00
Brenden Harrell 044e2b63e9 Revert Setup Process 2021-05-25 10:42:39 -05:00
B Harrell c4e16038a4 Merge branch 'Superalgos:develop' into develop 2021-05-25 10:33:12 -05:00
Luis Fernando Molina 1aaa39e284 Merge pull request #980 from Luis-Fernando-Molina/develop
Contribution: New Docs Concepts
2021-05-25 11:26:27 -04:00
Luis Fernando Molina f4c8f1abce New Docs Concepts 2021-05-25 17:25:21 +02:00
Brenden Harrell 683d6d2948 Remove gitattributes 2021-05-25 10:12:24 -05:00
Luis Fernando Molina 69bf426a08 Merge pull request #979 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher Docs improved
2021-05-25 10:56:28 -04:00
Luis Fernando Molina 7d1fe263aa API Data Fetcher Docs improved 2021-05-25 16:54:35 +02:00
Brenden Harrell 74ad625e53 TensorFlow Binary 2021-05-25 09:44:30 -05:00
Brenden Harrell 59534f0846 TensorFlow Linux Binaries 2021-05-25 09:31:05 -05:00
Brenden Harrell 244c43a20e TensorFlow Linux Binaries 2021-05-25 09:28:55 -05:00
Brenden Harrell 6c046725e5 TensorFlow Source 2021-05-25 09:28:18 -05:00
Brenden Harrell 938b5fbfb4 TensorFlow source 2021-05-25 09:27:30 -05:00
Brenden Harrell 12d53f218e TensorFlow Source 2021-05-25 09:25:59 -05:00
Brenden Harrell 45a00fb17f TensorFlow Source 2021-05-25 09:24:25 -05:00
Brenden Harrell 8c7ff0c1d9 TensorFlow Source 2021-05-25 09:17:10 -05:00
Brenden Harrell 3d3ab2548d TensorFlow Source 2021-05-25 09:16:24 -05:00
Brenden Harrell a58bf292a9 Tensorflow Source 2021-05-25 09:15:39 -05:00
Brenden Harrell e1791c2630 TensorFlow Source 2021-05-25 09:14:13 -05:00
Brenden Harrell cab277cf2c TensorFlow Source files 2021-05-25 09:13:11 -05:00
Brenden Harrell f1cc1caf20 Remove TensorFlow Project from Setup Process 2021-05-25 09:01:19 -05:00
Brenden Harrell 8ca90466e4 Add Back tfjs Source Files 2021-05-25 08:37:47 -05:00
Luis Fernando Molina 0cc1d6b378 Merge pull request #978 from Luis-Fernando-Molina/develop
Contribution: BUG FIX Workspace List not loading plugins
2021-05-25 06:57:07 -04:00
Luis Fernando Molina 5e068f0012 BUG FIX Workspace List not loading plugins 2021-05-25 12:55:49 +02:00
Luis Fernando Molina ea7179d12b Merge pull request #977 from Luis-Fernando-Molina/develop
Contribution: Final set of icons for API Data Fetcher by Hirajin Koizuko (Ron)
2021-05-24 23:00:45 -04:00
Luis Fernando Molina 97572ed0a4 Final set of icons for API Data Fetcher by Hirajin Koizuko (Ron) 2021-05-25 04:57:06 +02:00
Luis Fernando Molina 1c4282b743 Merge pull request #976 from Luis-Fernando-Molina/develop
Contribution: Data Mining Docs Topic Reviewed
2021-05-24 21:30:50 -04:00
Luis Fernando Molina 0f8dce49c1 Merge pull request #975 from harrellbm/develop
Update Windows Launch Script and Rebuild Tensorflow Package files
2021-05-24 21:29:58 -04:00
Luis Fernando Molina 173f752dc1 Data Mining Docs Topic Reviewed 2021-05-25 03:25:30 +02:00
B Harrell dd2ad0397b Merge branch 'Superalgos:develop' into develop 2021-05-24 19:52:06 -05:00
Brenden Harrell cc50d576f1 Rebuild: Tensorflow Package Files 2021-05-24 19:51:37 -05:00
Luis Fernando Molina 347c15189b Merge pull request #974 from Luis-Fernando-Molina/develop
Contribution: Available Workspaces Look and Feel Improved
2021-05-24 19:22:04 -04:00
Luis Fernando Molina 0f0ede81b2 Available Workspaces Look and Feel Improved 2021-05-25 01:19:43 +02:00
Brenden Harrell 04dad67c01 Fix: remove unecissary dep for tensorflow 2021-05-24 15:09:49 -05:00
Luis Fernando Molina 543aac058c Refining the error handling 2021-05-24 21:47:04 +02:00
Brenden Harrell 38bd1badb9 Update: package files with windows-build-tools 2021-05-24 13:57:03 -05:00
Luis Fernando Molina 99376d2072 Utilities Error Handling Functions imlpemented 2021-05-24 20:03:16 +02:00
Julian Molina 4ed52e3df7 Merge pull request #973 from rjkilpatrick/patch-2
Update README.md
2021-05-24 20:00:23 +02:00
John Kilpatrick 9824567998 Update README.md
Fix small typos and grammar mistakes
2021-05-24 18:31:32 +01:00
Brenden Harrell 207311b14c Fix: Windows Launch for Shortcut on Diff Drive 2021-05-24 12:25:15 -05:00
Julian Molina a04b2be446 Merge pull request #972 from julian-molina/plugins-docs
Contribution: Contributing tutorials
2021-05-24 19:08:37 +02:00
Julian Molina 5f147eca7f Contributing tutorials 2021-05-24 19:04:40 +02:00
Luis Fernando Molina 350e45825a Merge pull request #970 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher Bot Error Handling
2021-05-24 11:49:50 -04:00
Luis Fernando Molina b544a2e69c DeepScan Bug Fixed 2021-05-24 17:48:47 +02:00
Luis Fernando Molina 9b1714b2e7 API Data Fetcher Bot Error Handling 2021-05-24 17:43:51 +02:00
Luis Fernando Molina 258347bc94 Merge pull request #969 from Luis-Fernando-Molina/develop
Contribution: Some Error Handling at API Data Fetcher and reduced console log width
2021-05-24 09:16:56 -04:00
Luis Fernando Molina 15e2e1ac67 Some Error Handling at API Data Fetcher and reduced console log width 2021-05-24 15:12:44 +02:00
Luis Fernando Molina 81ac113e8f Making things more clear 2021-05-24 14:00:38 +02:00
Luis Fernando Molina d475ac95e3 Merge pull request #968 from harrellbm/develop
Unified Shortcut/Uninstall Scripts and Doc Updates
2021-05-23 22:05:07 -04:00
Brenden Harrell df1fb3f0ef Fix: clean up code 2021-05-23 20:24:06 -05:00
B Harrell e2ff7ecac6 Update: Readme for Unified Scripts
Explanations for automatic shortcut creation, noShortcuts flag and unified Uninstall added.
2021-05-23 16:55:51 -05:00
B Harrell 990f1c1c3c Merge branch 'Superalgos:develop' into develop 2021-05-23 16:15:20 -05:00
Brenden Harrell a3ff7c3116 Update: Docs for Launch-Scripts 2021-05-23 16:13:22 -05:00
Brenden Harrell b1bd4a350a Delete: Old Uninstall Script 2021-05-23 15:21:50 -05:00
Brenden Harrell 987eb76023 Add: Finish Unified Uninstall Script 2021-05-23 15:21:10 -05:00
Brenden Harrell 32eee83073 Add: Unified uninstall Script Finished Ubuntu side 2021-05-23 13:14:33 -06:00
Brenden Harrell 8319db6588 Modify: Optimize Launch Script for Linux and Mac 2021-05-23 12:52:13 -06:00
Brenden Harrell eef8f6e03c Fix: Adjust Paths for Setup Run 2021-05-23 12:06:13 -06:00
Brenden Harrell 8d64c231c0 Add: Create Shortcut Command to Setup Script 2021-05-23 12:01:34 -06:00
Brenden Harrell 8e87370cfb Delete: Old create-shortcut Scripts 2021-05-23 10:06:16 -06:00
Brenden Harrell 46cfe71c32 Modify: Unified create-shortcut Script 2021-05-23 10:05:09 -06:00
Luis Fernando Molina aa30e40791 Infraestructure Ready to integrate API Data Fetcher to the Docs 2021-05-23 17:13:13 +02:00
Luis Fernando Molina f9e276f1f6 Merge pull request #967 from Luis-Fernando-Molina/develop
Contribution: More Icons provided by Ron for API Data Fetcher Bot
2021-05-23 09:23:42 -04:00
Luis Fernando Molina 3764fcb274 More Icons provided by Ron for API Data Fetcher Bot 2021-05-23 15:22:40 +02:00
Brenden Harrell f2877386c8 Unified Shortcut Script, Windows finished 2021-05-22 21:21:37 -05:00
Luis Fernando Molina a0e37220ad Merge pull request #966 from Luis-Fernando-Molina/develop
Contribution: Data Mining Topic Documentation expanded.
2021-05-22 18:46:40 -04:00
Luis Fernando Molina e6061da09a Data Mining Topic Documentation expanded. 2021-05-23 00:45:13 +02:00
Luis Fernando Molina 1d5138753a Merge branch 'plugins-docs' into develop 2021-05-23 00:24:15 +02:00
Luis Fernando Molina 3042cede1d Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-05-23 00:23:23 +02:00
Luis Fernando Molina 387a8204fa Merge pull request #962 from PLuv/develop
Fixed: Bug where checkUserDefinedCode called even if stage didn't exist
2021-05-22 15:17:04 -04:00
Julian Molina c710014392 Merge pull request #963 from julian-molina/plugins-docs
Contribution: Basic Education tutorial fixes
2021-05-22 13:49:05 +02:00
Julian Molina 38550c54a5 Basic Education tutorial fixes 2021-05-22 13:47:28 +02:00
Julian Molina ce9acc2900 Merge pull request #960 from tikry2021/plugins-docs
Contribution: Workspace panel is on the left
2021-05-22 11:15:48 +02:00
Philip Love 6f1c506d9b Modify: Fix user variables in trading engine numbered 0-9 - add 2 more market buy/sell for users 2021-05-21 21:54:19 -04:00
Philip Love 5edc510c2c Fixed: Bug where checkUserDefinedCode called even if stage didn't exist 2021-05-21 21:52:32 -04:00
Luis Fernando Molina 2ef6136989 Merge pull request #961 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher Daily Files working, all time high being plotted
2021-05-21 18:12:57 -04:00
Luis Fernando Molina f5a46b5a06 API Data Fetcher Daily Files working, all time high being plotted 2021-05-22 00:11:05 +02:00
Luis Fernando Molina 6c117f3eab Tyding up the code 2021-05-21 23:38:48 +02:00
Till Rupp ed76069cc3 Workspace panel is on the left 2021-05-21 22:14:12 +02:00
Luis Fernando Molina e3a2e60209 Merge pull request #959 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher Daily Files being processed
2021-05-21 15:01:28 -04:00
Luis Fernando Molina 4fa59deaab Merge pull request #957 from ssplatt/docker-update
Update Dockerfile for latest code update dependencies
2021-05-21 15:01:07 -04:00
Julian Molina e4066686ea Merge pull request #958 from harrellbm/plugins-docs
Add Insertion Carat Back to Docs Textareas
2021-05-21 20:38:03 +02:00
ssplatt 97f816c113 fix volume mounts 2021-05-21 14:21:51 -04:00
Brenden Harrell b888018b22 Add Insertion Carat Back to Docs Textareas 2021-05-21 13:17:37 -05:00
Luis Fernando Molina 32c1ac5e56 Bug Fixed Daily is now running 2021-05-21 19:26:33 +02:00
Luis Fernando Molina 3676d4ac8c Refactoring TimePeriods for TimeFramesArray 2021-05-21 19:16:00 +02:00
Luis Fernando Molina ca5573459e Bug Fixes Daily partially running 2021-05-21 19:02:17 +02:00
Julian Molina 60fd72479d Merge pull request #956 from harrellbm/plugins-docs
Charting Space Tutorial Revision 5 and MapToggle option and Insertion Carat Css fix
2021-05-21 17:43:46 +02:00
Luis Fernando Molina 328963e196 Update FetchingProcess.js 2021-05-21 17:39:15 +02:00
ssplatt fc3037358d update dockerfile for latest code update dependencies 2021-05-21 11:27:09 -04:00
Brenden Harrell 4227252627 Update Custom Charts Workspace 2021-05-21 09:13:11 -05:00
Brenden Harrell b6be55f2d0 Fix Insertion Carat Showing up in Docs and Tutorial Panel 2021-05-21 09:09:22 -05:00
Luis Fernando Molina bda5920088 Merge pull request #955 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher Bug Fixes & Aggregation Library
2021-05-21 09:44:00 -04:00
Luis Fernando Molina 74e4533d8e Merge pull request #954 from suttridge/develop
Contribution: Updated tested exchanges to indicate that Luno exchange is not longer suitable for use.
2021-05-21 09:43:37 -04:00
Luis Fernando Molina 88afcd237e Bug fixed with beginingOfTheMarket context variable 2021-05-21 15:40:37 +02:00
Brenden Harrell 0b9fdaf513 Repaginate Charting Space Tutorial 2021-05-21 08:36:21 -05:00
Luis Fernando Molina 4ab1b9d86c Data Aggregation Functions Library fully implemented and running 2021-05-21 14:46:18 +02:00
Steve Langridge e569c72573 Updated tested exchanges to indicate that Luno exchange is not longer suitable for use. 2021-05-21 11:09:07 +02:00
Luis Fernando Molina 198fc130b2 Merge pull request #953 from harrellbm/develop
Update Readme for New Dependency Setup
2021-05-20 22:51:15 -04:00
B Harrell bf053c688e Update Readme for New Dependency Setup 2021-05-20 21:27:57 -05:00
Luis Fernando Molina 4db9e0e3ce Common Function Library Implemented for Market and Daily Frameworks 2021-05-21 01:41:34 +02:00
Luis Fernando Molina 1a3ec7d03b Merge pull request #952 from Luis-Fernando-Molina/develop
Contribution: node_modules folders removed
2021-05-20 15:44:12 -04:00
Luis Fernando Molina 44111f6dea Update .gitignore 2021-05-20 21:39:31 +02:00
Luis Fernando Molina ac5774dfb2 node_modules folders removed from all places 2021-05-20 21:39:08 +02:00
Luis Fernando Molina f7423e26b2 Merge pull request #950 from harrellbm/develop
Initial Script to Install node dependencies
2021-05-20 15:28:03 -04:00
Luis Fernando Molina 94fe3511d0 Merge pull request #951 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher bot, working for Market Files with Messari demo.
2021-05-20 13:49:25 -04:00
Luis Fernando Molina ab3fe8ab6c API Data Fetcher bot, working for Market Files with Messari demo. 2021-05-20 19:29:57 +02:00
Luis Fernando Molina 9eb6732638 Market Files Working up to All Time High Plotter 2021-05-20 19:23:55 +02:00
Brenden Harrell 2a6632f159 Charting Space Tutorial Revision 5 2021-05-20 10:17:29 -05:00
Luis Fernando Molina 26a5567f1c Update FromOneMinToMultiPeriodMarket.js 2021-05-20 16:26:54 +02:00
B Harrell b3710db27d Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-05-20 09:04:46 -05:00
Smidy 16f869f22c Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-05-20 21:42:32 +12:00
Brenden Harrell 518c993e39 Type Fix 2021-05-19 20:01:33 -05:00
Brenden Harrell 77c00b8a3c Finished Initial Setup Script 2021-05-19 19:58:47 -05:00
Luis Fernando Molina 9d0e5aa3da API Data Fetcher Aggregated File Being Saved 2021-05-19 23:26:58 +02:00
Luis Fernando Molina afc81903c5 API Data Fetcher bot process improved 2021-05-19 22:38:11 +02:00
Brenden Harrell a337f6f4c0 Tweaks for setup script 2021-05-19 15:23:17 -05:00
Brenden Harrell 4b32d7c30a Add node_modules to .gitignore 2021-05-19 13:28:46 -05:00
Brenden Harrell a3afb73cf2 Package.jsons to Handle npm ci Command 2021-05-19 13:22:19 -05:00
Brenden Harrell ec2db1e887 Initial Setup Script to install Node Dependencies 2021-05-19 12:50:34 -05:00
Luis Fernando Molina 98f79f5162 Merge pull request #946 from Luis-Fernando-Molina/develop
Contribution: This is my contribution to Superalgos
2021-05-19 12:29:02 -04:00
Luis Fernando Molina 232b2ef63c API Data Fetcher DeepScan more fixes 2021-05-19 18:26:59 +02:00
Luis Fernando Molina 5bd2f0c554 API Data Fetcher DeepScan fixes 2021-05-19 18:23:30 +02:00
Luis Fernando Molina a5928dc51d Update Footer.js 2021-05-19 18:02:03 +02:00
Luis Fernando Molina e7e39bb5bd docs improvements: buttons for User Manual, Data Mines and Reviews 2021-05-19 17:29:11 +02:00
Luis Fernando Molina 098843221f Updated Icons 2021-05-19 16:35:15 +02:00
Julian Molina aefa41cd83 Merge pull request #949 from Spodeian/plugins-docs
Contribution: My Superalgos Review
2021-05-19 13:10:27 +02:00
Spodeian efe3f90eaa My Superalgos Review 2021-05-19 20:45:58 +10:00
Julian Molina b8ec01b52d Merge pull request #948 from tikry2021/plugins-docs
Contribution: My Superalgos Review
2021-05-19 08:58:01 +02:00
Julian Molina 7d615ac2f6 Merge pull request #947 from MarcelloPersico/plugins-docs
Contribution: review
2021-05-19 08:56:25 +02:00
Luis Fernando Molina 30644ff9e4 Aggregation Functions fully implemented 2021-05-18 23:58:50 +02:00
Luis Fernando Molina 35164873c2 Aggregation Function semi implemented 2021-05-18 23:36:17 +02:00
Till Rupp 3fe4517286 My Superalgos Review 2021-05-18 23:20:12 +02:00
Marcello Persico 783ea687ba review 2021-05-18 22:41:19 +02:00
Luis Fernando Molina 1b421bfec7 loadExistingFiles function implemented 2021-05-18 21:11:30 +02:00
Luis Fernando Molina 2bccf3518c Some Icons for API Data Fetcher Bot and getContextVariables function implementation 2021-05-18 20:36:27 +02:00
Luis Fernando Molina d18f8cefd7 Hooking the new Framework module to the Indicator Bot 2021-05-18 19:07:45 +02:00
Luis Fernando Molina 2b076c7c41 removing referencies to Candle 2021-05-18 18:19:39 +02:00
Luis Fernando Molina 6030725029 All volume related stuff removed from code 2021-05-18 18:11:24 +02:00
Luis Fernando Molina b787498759 Merge pull request #945 from Luis-Fernando-Molina/develop
Contribution: API CodeBase general mantainance: let thisObject missing fixed
2021-05-18 11:13:51 -04:00
Luis Fernando Molina 29702850b5 API CodeBase general mantainance: let thisObject missing fixed 2021-05-18 16:52:13 +02:00
Luis Fernando Molina 3322ae7272 Merge pull request #944 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher bot, One Min datasets handling
2021-05-18 09:17:00 -04:00
Luis Fernando Molina adcd2f8169 API Data Fetcher bot, One Min datasets handling 2021-05-18 15:16:39 +02:00
B Harrell 20e13e348a Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-05-18 08:02:31 -05:00
Till Rupp 8483f6b9a9 My Superalgos Review 2021-05-18 00:47:12 +02:00
Luis Fernando Molina 4376ffc3e8 Merge pull request #943 from Luis-Fernando-Molina/develop
Contribution: Legacy Code Mantainance
2021-05-17 14:23:09 -04:00
Luis Fernando Molina e873f5379f Legacy Code Mantainance 2021-05-17 20:21:54 +02:00
Luis Fernando Molina 0de5eba7a5 Merge pull request #941 from PLuv/develop
Fixed: Limit Buy & Sell Quoted Panels
2021-05-17 11:49:15 -04:00
Philip Love 523cd53a9f Fixed: Limit Buy & Sell Quoted Panels 2021-05-17 10:27:57 -04:00
Philip Love 0ff245bdd5 Merge remote-tracking branch 'upstream/develop' into develop 2021-05-17 10:24:13 -04:00
Luis Fernando Molina d072fae4bf Merge pull request #940 from Superalgos/plugins-docs
Plugins docs Service Pack: Include bug fixes at plugins, new Docs, etc.
2021-05-17 10:10:19 -04:00
Luis Fernando Molina 2c125dbe38 Merge pull request #939 from Luis-Fernando-Molina/develop
Contribution: Plugins Docs Merged
2021-05-17 09:58:26 -04:00
Luis Fernando Molina f1d9a05b1f Merge branch 'plugins-docs' into develop 2021-05-17 15:57:40 +02:00
Luis Fernando Molina 68d6bd9c0f Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-05-17 15:57:06 +02:00
Luis Fernando Molina 8c795d79c2 Merge pull request #938 from Luis-Fernando-Molina/develop
Contribution: API Fetcher Bot: Messari Data Mine with first indicator and plotter tested.
2021-05-17 09:56:31 -04:00
Julian Molina 4a2ffa4ed3 Merge pull request #937 from julian-molina/plugins-docs
Contribution: BBTP syntax fix to tradingCurrent
2021-05-17 14:08:59 +02:00
Julian Molina 60143ba4d0 BBTP syntax fix to tradingCurrent 2021-05-17 14:08:09 +02:00
Julian Molina c2077aedb3 Merge pull request #935 from elCoderCP4H/plugins-docs
Contribution: elcoder's Superalgos Review
2021-05-17 11:52:30 +02:00
Luis Fernando Molina 0ee65aa180 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-05-16 16:34:52 +02:00
Luis Fernando Molina abd4b605b5 API Fetcher Bot Implementation: All Time High Indicator and Plotter implemented and tested. 2021-05-16 15:26:49 +02:00
zil0 c487fe9939 Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-05-15 01:45:38 -05:00
Luis Fernando Molina 680d066fa4 Merge pull request #934 from Luis-Fernando-Molina/develop
Contribution: Merge fo Plugins Docs into Develop
2021-05-14 22:57:04 -04:00
Luis Fernando Molina c19b7d0190 Refactoring of User Variables for User Defined Variables 2021-05-15 04:55:40 +02:00
Luis Fernando Molina b25bf3fc9b Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-05-15 04:26:28 +02:00
Luis Fernando Molina 0a9374b831 Merge pull request #932 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher, now it can fetch fields from any part of the response
2021-05-14 16:23:02 -04:00
Luis Fernando Molina 40be21e6a8 Basic Documentation of the nodes related to the API Data Fetcher bot 2021-05-14 22:21:32 +02:00
Philip Love 0fd8b2a645 Modify: Pluvtech Data-Mine - Lighten Waddah Trend bars 2021-05-14 15:24:54 -04:00
Julian Molina ed1b3896c5 Merge pull request #933 from julian-molina/plugins-docs
Contribution: User defined icons
2021-05-14 20:09:31 +02:00
Julian Molina 61ca4b60ce User defined icons 2021-05-14 20:07:25 +02:00
Luis Fernando Molina 8d5fdf3ed4 API Data Fetcher, now it can fetch fields from any part of the response 2021-05-14 18:55:14 +02:00
Luis Fernando Molina 1f505a2c14 Merge pull request #931 from PLuv/develop
Modify: PLUVTECH-DM -> Pluvtech ; Modify: 'whileAtStage_whenToRun' -> 'whileAtStageWhenToRun'
2021-05-14 11:55:06 -04:00
Philip Love 96b52132f2 Remove: Unnecessary Condition in checkUserDefinedCode() 2021-05-14 11:51:47 -04:00
Philip Love 9cc2bbdee2 Modify: 'whileAtStage_whenToRun' -> 'whileAtStageWhenToRun' 2021-05-14 11:32:37 -04:00
Philip Love 0b566f59c4 Modify: PLUVTECH-DM -> Pluvtech 2021-05-14 11:20:40 -04:00
Luis Fernando Molina 27d0d41b42 Merge pull request #930 from Luis-Fernando-Molina/develop
Contribution: BIG FIX: Undefined indicators discovered at BB Top Bounce
2021-05-14 10:21:27 -04:00
Luis Fernando Molina fb0566afe3 BUG FIX: Suggestion of Deep Scan 2021-05-14 16:19:59 +02:00
Luis Fernando Molina 6c369a3192 BIG FIX: Undefined indicators discovered at BB Top Bounce 2021-05-14 16:12:32 +02:00
Julian Molina 34eaa8d06a Merge pull request #929 from julian-molina/plugins-docs
Contribution: README welcoming
2021-05-14 10:04:35 +02:00
Julian Molina 5e1ba8cb9e README welcoming 2021-05-14 10:04:21 +02:00
Julian Molina 27c213b6fd Merge pull request #928 from julian-molina/plugins-docs
Contribution: README link
2021-05-14 10:03:07 +02:00
Julian Molina a6ecba31a1 README link 2021-05-14 10:02:46 +02:00
Luis Fernando Molina 72dee4e8a3 Merge pull request #925 from PLuv/develop
Add: PLUVTECH-DM to Masters-Trading-Mine Dependencies - Add: User Defined Variables - Add: User Defined Code
2021-05-13 16:52:36 -04:00
Luis Fernando Molina 257fcc3da9 Merge pull request #926 from Luis-Fernando-Molina/develop
Contribution: API Fetcher Demo saving Messari Asset Metrics
2021-05-13 16:19:27 -04:00
Luis Fernando Molina b1970da932 Fix to Deep Scan bug 2021-05-13 22:18:00 +02:00
Luis Fernando Molina a891d6e209 Fix to Deep Scan bug 2021-05-13 22:13:50 +02:00
Luis Fernando Molina 3c12df4245 API Fetcher Demo saving Messari Asset Metrics 2021-05-13 22:11:17 +02:00
Philip Love 35b852ff2a Add: User-Defined-Code for Stages 2021-05-13 14:48:10 -04:00
Philip Love 3e8ca6a5ae Add: Episodes->User-Defined-Variables nodes 2021-05-13 14:43:41 -04:00
Philip Love 141f84d78e Add: PLUVTECH-DM to Masters-Trading-Mine Dependencies 2021-05-13 14:40:47 -04:00
Julian Molina 58aafeb73a Merge pull request #924 from julian-molina/plugins-docs
Contribution: README
2021-05-13 20:04:36 +02:00
Julian Molina 33dc3c994d README 2021-05-13 20:04:17 +02:00
Julian Molina b688f5ef0a Merge pull request #923 from julian-molina/plugins-docs
Contribution: README final fixes
2021-05-13 20:02:05 +02:00
Julian Molina 45755c18d2 README final fixes 2021-05-13 19:56:28 +02:00
Julian Molina ffb12ae9f2 Merge pull request #922 from julian-molina/plugins-docs
Contribution: README last fixes
2021-05-13 19:54:44 +02:00
Julian Molina 9afb4d3433 README last fixes 2021-05-13 19:54:22 +02:00
Julian Molina 6348891a93 Merge pull request #921 from julian-molina/plugins-docs
Contribution: README more fixes
2021-05-13 19:49:20 +02:00
Julian Molina 796f622d34 README more fixes 2021-05-13 19:49:00 +02:00
Julian Molina abdced0801 Merge pull request #920 from julian-molina/plugins-docs
Contribution: README fixes
2021-05-13 19:44:58 +02:00
Julian Molina 6c4ccc1e1a README fixes 2021-05-13 19:44:38 +02:00
Julian Molina 2096323d88 Merge pull request #919 from julian-molina/plugins-docs
Contribution: README
2021-05-13 19:18:43 +02:00
Julian Molina cf36649f03 README 2021-05-13 19:16:21 +02:00
Luis Fernando Molina 7a818d5a89 Merge pull request #918 from Luis-Fernando-Molina/develop
Contribution: Plugins Docs Merged into Develop
2021-05-13 12:18:19 -04:00
Luis Fernando Molina b52ed20caf Merge branch 'plugins-docs' into develop 2021-05-13 18:17:31 +02:00
Luis Fernando Molina 8e2b791bc2 Merge pull request #917 from Luis-Fernando-Molina/develop
Contribution: Bug Fix Exchange Bands was failing to run
2021-05-13 12:15:13 -04:00
Luis Fernando Molina 01bb8e7843 Bug Fix Exchange Bands was failing to rrun 2021-05-13 18:08:45 +02:00
Julian Molina 4d5e5f04dc Merge pull request #916 from julian-molina/plugins-docs
Contribution: FR flag
2021-05-13 17:51:19 +02:00
Julian Molina 6d2cdf4cbd FR flag 2021-05-13 17:50:24 +02:00
Luis Fernando Molina 3a32953c66 Merge pull request #915 from Luis-Fernando-Molina/develop
Contribution: Api Fetcher bot Task Installation Process Implemented and tested
2021-05-13 09:02:30 -04:00
Luis Fernando Molina 32a898d7c7 Api Fetcher bot Task Installation Process Implemented and tested 2021-05-13 15:02:05 +02:00
Brenden Harrell 6647bef3f5 Update Tutorial Step Doc 2021-05-12 19:53:41 -05:00
Brenden Harrell 5004324744 Update Charting Tutorial for Toggle Map Option 2021-05-12 19:30:39 -05:00
Brenden Harrell 4d7f9cf419 Merge branch 'plugins-docs' of https://github.com/harrellbm/Superalgos into plugins-docs 2021-05-12 19:28:40 -05:00
Brenden Harrell 4bcee11574 Add toggleMapView Function for Tutorial Steps 2021-05-12 19:28:34 -05:00
zil0 d4c52f95ec My Superalgos Review 2021-05-12 18:48:09 -05:00
Luis Fernando Molina 7190ff7806 Merge pull request #914 from Luis-Fernando-Molina/develop
Contribution: Docs updated
2021-05-12 16:00:12 -04:00
Luis Fernando Molina cd72460f46 Docs updated 2021-05-12 21:59:55 +02:00
Luis Fernando Molina 87e6f34428 Merge pull request #913 from Luis-Fernando-Molina/develop
Contribution: Troubleshooting Saving
2021-05-12 15:49:15 -04:00
Luis Fernando Molina 9de6d99d58 Troubleshooting Saving 2021-05-12 21:48:56 +02:00
Luis Fernando Molina 2cd52259ea Merge pull request #912 from Luis-Fernando-Molina/develop
Contribution: Fetcher Workspace Plugin Updated
2021-05-12 14:13:44 -04:00
Luis Fernando Molina 9c7373197b Fetcher Workspace Plugin Updated 2021-05-12 20:09:14 +02:00
Luis Fernando Molina cc75447b55 Merge pull request #911 from harrellbm/develop
Finished Windows Shortcut Scripts and Docs
2021-05-12 11:12:03 -04:00
Brenden Harrell 2fc5d2f810 Update Docs for Windows Scripts 2021-05-11 22:19:24 -05:00
Brenden Harrell 85a6f6edb4 Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-05-11 22:07:24 -05:00
Brenden Harrell d2dbddce49 Comment out Debug Lines 2021-05-11 22:07:18 -05:00
B Harrell 9d5d2d2671 Update Readme for Windows Shortcut Scripts 2021-05-11 22:03:34 -05:00
Brenden Harrell 3b2e2c0e3b Finished Windows Shortcut Scripts 2021-05-11 21:48:03 -05:00
Luis Fernando Molina f819213e29 Merge pull request #910 from ssplatt/add-slack-announce
initial commit of slack bot for announcements
2021-05-11 19:19:10 -04:00
Brett Taylor 3574ee7d59 initial commit of slack bot 2021-05-11 18:30:25 -04:00
Luis Fernando Molina 631a702499 Merge pull request #909 from Luis-Fernando-Molina/develop
Contribution: French Language Added
2021-05-11 13:26:45 -04:00
Luis Fernando Molina 594c553206 Bug Fixed when a formula at live trade referenced a .previous at market files 2021-05-11 18:57:02 +02:00
Luis Fernando Molina 8b4576c6f4 French Language Added 2021-05-11 16:00:00 +02:00
Luis Fernando Molina 31233588db Merge pull request #904 from ssplatt/discord-text
Add formatting option for Discord announcement messages
2021-05-11 09:38:47 -04:00
Luis Fernando Molina d552b229f8 Merge pull request #908 from Luis-Fernando-Molina/develop
Contribution: Master Data Mine without API Fetcher Example
2021-05-11 09:36:38 -04:00
Luis Fernando Molina ebcb783207 Master Data Mine without API Fetcher Example 2021-05-11 15:35:48 +02:00
Julian Molina b2cfed488e Merge pull request #905 from 9808us/plugins-docs
Contribution: This is my contribution to Superalgos
2021-05-11 10:00:12 +02:00
9808us f4607447b1 This is my contribution to Superalgos 2021-05-11 09:57:52 +02:00
Brett Taylor 5303f0672c pass in config 2021-05-11 00:01:16 -04:00
Brett Taylor c1da48bff8 add message format option 2021-05-10 23:57:41 -04:00
Brenden Harrell 70b26543fc Merge branch 'plugins-docs' of https://github.com/harrellbm/Superalgos into plugins-docs 2021-05-10 20:33:25 -05:00
Brenden Harrell a4cf1cbe3c Charting Space Tutorial Hierarchy Refinements 2021-05-10 20:17:08 -05:00
Julian Molina f6adc7aa9f Merge pull request #903 from julian-molina/plugins-docs
Contribution: Tutorial tips update
2021-05-10 13:32:29 +02:00
Julian Molina 45a768c9c5 Tutorial tips update 2021-05-10 13:31:06 +02:00
Julian Molina 52368451b9 Merge pull request #902 from superharoun/plugins-docs
Fix typos
2021-05-10 10:08:04 +02:00
Haroun 62f46efba8 This is my contribution to Superalgos 2021-05-09 22:28:51 +02:00
Luis Fernando Molina 8dc4f28be8 Merge pull request #899 from harrellbm/develop
Ubuntu create shortcut script
2021-05-09 10:16:59 -04:00
Brenden Harrell ba54382272 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-05-09 07:31:44 -05:00
Luis Fernando Molina ff6ecbd0ac Merge pull request #898 from Luis-Fernando-Molina/develop
Contribution: Mege of Plugin Docs
2021-05-09 08:05:46 -04:00
Luis Fernando Molina c68fbe2c97 Merge remote-tracking branch 'upstream/plugins-docs' into develop 2021-05-09 14:04:41 +02:00
Luis Fernando Molina c5b1006fde Merge pull request #896 from Smidy13/develop
Improvement: Discord, Dogecoin Icons and Configuration
2021-05-09 07:57:37 -04:00
Smidy13 0e8580d376 Bug Fix: Defining Each Telegram and Discord Bot Array 2021-05-09 22:59:53 +12:00
Smidy13 a647dd6d59 Discord Bot Icons 2021-05-09 15:39:24 +12:00
Smidy 4ab3295917 Merge branch 'Superalgos:develop' into develop 2021-05-09 15:16:37 +12:00
Smidy13 82b75aa4e5 Dogecoin Icons and Configuration 2021-05-09 15:16:01 +12:00
Brenden Harrell 0ba846534b Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-05-08 19:38:18 -05:00
Brenden Harrell 81f8feb69a Update Launch Script Docs 2021-05-08 19:38:09 -05:00
Brenden Harrell 070a74dc89 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-05-08 19:34:25 -05:00
B Harrell 477e29dcf8 Add gifs to readme 2021-05-08 16:31:16 -05:00
Brenden Harrell 30da48d5de Update Docs for Ubuntu Shortcuts 2021-05-08 16:14:37 -05:00
Brenden Harrell f1daaaa752 Clean Linux Launch Script 2021-05-08 15:36:47 -05:00
Brenden Harrell f63dd40d18 Add Create Shortcut Script for Ubuntu 2021-05-08 15:36:22 -05:00
Julian Molina c0a74025ff Merge pull request #893 from julian-molina/plugins-docs
Contribution: Fix on contributions instructions
2021-05-08 21:28:07 +02:00
Julian Molina a05970ae49 Fix on contributions instructions 2021-05-08 21:27:28 +02:00
Julian Molina 3cc58b3c7d Merge pull request #891 from julian-molina/develop
Contribution: DE flag
2021-05-08 20:29:09 +02:00
Julian Molina f393eed63b Merge pull request #892 from kizniche/plugins-docs
Contribution: Grammar, instruction, and improper linking fixes
2021-05-08 20:28:32 +02:00
Kyle Gabriel 8846932335 Grammar, instruction, and improper linking fixes 2021-05-08 13:08:40 -04:00
Julian Molina e94b29402b DE flag 2021-05-08 17:11:08 +02:00
Luis Fernando Molina 07eacf19af Merge pull request #890 from Luis-Fernando-Molina/develop
Contribution: German Language  added and version labels switched to Beta 10
2021-05-08 08:33:25 -04:00
Luis Fernando Molina ec65381c01 German Language added and version labels switched to Beta 10 2021-05-08 14:27:41 +02:00
Julian Molina 4497d10a46 Merge pull request #887 from harrellbm/plugins-docs
Smooth Tutorial Step Transitions
2021-05-08 09:09:34 +02:00
B Harrell 68638187d1 Merge branch 'Superalgos:plugins-docs' into plugins-docs 2021-05-07 13:18:09 -05:00
B Harrell 1e062d73ec Merge branch 'Superalgos:develop' into develop 2021-05-07 13:16:57 -05:00
Brenden Harrell be218752b5 Smooth Tutorial Step Transitions 2021-05-07 08:47:00 -05:00
Luis Fernando Molina 6f82264d06 Merge pull request #886 from ssplatt/discord-integration-1
get discord announcements working
2021-05-07 06:32:19 -04:00
Brenden Harrell 875f86a8eb Add vendor prefix for browser compatibility 2021-05-06 22:09:55 -05:00
Brett Taylor 5475d3b1d6 get discord announcements working 2021-05-06 22:45:31 -04:00
Brenden Harrell 0829ce734e Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-05-06 12:32:06 -06:00
Luis Fernando Molina 70a346ccc9 Merge pull request #879 from Smidy13/develop
Improvement: Interpreting Multiple Telegram Commands
2021-05-06 13:51:48 -04:00
Luis Fernando Molina a54c815533 Merge pull request #884 from frysee/add-delta-mine
added new mine containing Wilder-RSI and MFI indicators
2021-05-06 13:46:28 -04:00
Brenden Harrell 22a765649c Smooth Out Tutorial Step Transitions 2021-05-06 09:11:42 -05:00
Brenden Harrell 5b0d289106 Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-05-06 08:22:20 -05:00
frysee e199a24416 added new mine containing Wilder-RSI and MFI indicators 2021-05-06 12:25:52 +02:00
Julian Molina 68ef1b0891 Merge pull request #882 from harrellbm/plugins-docs
Charting Space Tutorial Fixes
2021-05-06 09:14:20 +02:00
Brenden Harrell 4f8b6da5e0 Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-05-05 21:16:40 -05:00
Brenden Harrell 173f715794 Update workspace 2021-05-05 21:11:18 -05:00
Brenden Harrell 81707deb28 Reindex Charting Space Tutorial 2021-05-05 21:09:20 -05:00
Brenden Harrell 3e52d518e4 Charting Space Tutorial fixes 2021-05-05 20:54:15 -05:00
Brenden Harrell fd7d5d1010 Fix: readd I See a Chart step 2021-05-05 15:27:22 -05:00
Brenden Harrell ca5fee2420 Merge branch 'plugins-docs' of https://github.com/harrellbm/Superalgos into plugins-docs 2021-05-05 06:58:02 -06:00
Brenden Harrell 4de1893713 Merge branch 'master' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-05-05 06:57:41 -06:00
Luis Fernando Molina 16c1443f49 Merge pull request #876 from harrellbm/develop
Launch Script Docs
2021-05-05 08:40:36 -04:00
Luis Fernando Molina 6e47c4e81f Merge pull request #874 from PLuv/develop
Fix: Plotters VWMA & WMA - Change: Minor Disk space optimization
2021-05-05 08:39:07 -04:00
Julian Molina f4d71fb7e9 Merge pull request #881 from julian-molina/plugins-docs
Contribution: Charting space tutorial typos
2021-05-05 12:11:01 +02:00
Julian Molina 6b10ea126d Charting space tutorial typos 2021-05-05 12:10:34 +02:00
Julian Molina 0f05db394d Merge pull request #880 from julian-molina/plugins-docs
Contribution: Tutorials
2021-05-05 09:16:07 +02:00
Julian Molina 3ba605d2fb Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-05-05 09:15:17 +02:00
Julian Molina cf5eb1f332 Tutorials 2021-05-05 09:15:00 +02:00
Smidy13 cf5d7415c7 Merge branch 'develop' of https://github.com/Smidy13/Superalgos into develop 2021-05-04 22:27:33 +12:00
Smidy13 f00b1b0cb1 Improvement: Interpreting Multiple Telegram Commands 2021-05-04 22:27:02 +12:00
Julian Molina bb82a4f179 Merge pull request #875 from harrellbm/plugins-docs
Charting Tutorial Revision 4
2021-05-03 18:42:54 +02:00
Brenden Harrell 861fa68b66 Lauch Scripts Docs 2021-05-03 09:53:43 -05:00
Brenden Harrell 26bc949218 Merge branch 'develop' of https://github.com/harrellbm/Superalgos into develop 2021-05-03 09:53:17 -05:00
Brenden Harrell 12866efd4f Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-05-03 09:53:05 -05:00
B Harrell 7d3fb6de2c Update for Launch Scripts 2021-05-03 09:17:02 -05:00
Brenden Harrell 7fed529503 Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-05-03 08:57:37 -05:00
Brenden Harrell 02f86cf454 Update Workspace 2021-05-03 08:54:12 -05:00
Brenden Harrell 364dea3357 Final Repagination Charting Tutorial Revison 4 2021-05-03 08:53:37 -05:00
Brenden Harrell 74c7ca2513 final changes Charting Tutorial Revision 4 2021-05-03 08:44:56 -05:00
Philip Love 56b8a24bfc Fix: Plotters VWMA & WMA - Change: Minor Disk space optimization 2021-05-02 23:02:15 -04:00
Brenden Harrell 542226bbca initial charting tutorial revision 4 2021-05-02 21:55:21 -05:00
Brenden Harrell 2975b0838d random small typo fix 2021-05-02 21:54:47 -05:00
Smidy 0f3abbddb2 Merge pull request #12 from Superalgos/plugins-docs
Merging Plugins Docs
2021-05-03 09:04:52 +12:00
Smidy 133fb4aecc Merge pull request #11 from Superalgos/develop
Merging Develop
2021-05-03 09:03:57 +12:00
Brenden Harrell 2ed90b1491 Merge branch 'master' of https://github.com/Superalgos/Superalgos into develop 2021-05-02 12:43:32 -05:00
Luis Fernando Molina d6692d45b3 Merge pull request #856 from Luis-Fernando-Molina/develop
Contribution: API Fetcher bot, basic implementation
2021-05-02 12:26:05 -04:00
Luis Fernando Molina 17624865c9 API Fetcher Bot - Workspace as Plugin 2021-05-02 18:22:18 +02:00
Luis Fernando Molina 81c20d148e Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-05-02 18:22:07 +02:00
Luis Fernando Molina 4ec579c781 Merge pull request #871 from Smidy13/develop
Bug Fixes for getOHLCVs from CCXT Library Update
2021-05-02 12:16:36 -04:00
Luis Fernando Molina a1dca88328 Merge pull request #872 from suttridge/develop
Contribution: Added data mine with indicator and plotter for the Turtle S1 system indicator.
2021-05-02 12:11:42 -04:00
Luis Fernando Molina 4ef6ede664 Merge pull request #873 from PLuv/develop
New Data Mine + New Color Options
2021-05-02 12:10:44 -04:00
Philip Love 1578d44b26 Add: PLUVTECH-DM 2021-05-02 11:29:42 -04:00
Steve Langridge 16801dfbb9 This is my contribution to Superalgos 2021-05-02 16:25:00 +02:00
Philip Love 226c9c2c24 Add: Additional pre-defined style colors and update style doc-page to display 2021-05-02 10:15:13 -04:00
Smidy13 09fa1cca5d Further changes to HistoricOHLCVs.js after extensive testing 2021-05-02 20:18:13 +12:00
Luis Fernando Molina 53317c3c27 API Fetcher Bot - Mapping Property Records with Api Received Data Fields finished and debugged. 2021-05-02 02:47:09 +02:00
Luis Fernando Molina a753985890 API Data Fetcher - Managing Error codes implemented 2021-05-01 20:06:59 +02:00
Luis Fernando Molina 7ff18ccdda API Data Fercher First Debugging Completed 2021-05-01 16:57:29 +02:00
Luis Fernando Molina 04bb90ca9f Merge branch 'master' into develop 2021-05-01 14:59:46 +02:00
Luis Fernando Molina 1b953c165d Merge pull request #869 from Superalgos/plugins-docs
Master update with Plugins Docs
2021-05-01 08:59:02 -04:00
Julian Molina 9dfe17154f Merge pull request #867 from maxspecktor/plugins-docs
Contribution: my review
2021-05-01 11:51:21 +02:00
max specktor 7b614b957c my review 2021-05-01 11:26:09 +02:00
Julian Molina ab393285ca Merge pull request #866 from julian-molina/plugins-docs
Contribution: Readme
2021-04-30 21:35:55 +02:00
Julian Molina 15f25cfa75 Readme 2021-04-30 21:33:42 +02:00
Julian Molina 3ed18a2b1c Merge pull request #865 from julian-molina/plugins-docs
Contribution: This is my contribution to Superalgos
2021-04-30 21:23:59 +02:00
Julian Molina 49fc0d39b2 This is my contribution to Superalgos 2021-04-30 21:23:08 +02:00
Julian Molina 84951c1eea Merge pull request #864 from julian-molina/plugins-docs
Contribution: Switching languages in Welcome tutorial
2021-04-30 19:52:04 +02:00
Julian Molina db4f31fa67 Switching languages in Welcome tutorial 2021-04-30 19:49:27 +02:00
Julian Molina 4e02030b76 Merge pull request #863 from julian-molina/plugins-docs
Contribution: Recovering from bad merge
2021-04-30 17:06:20 +02:00
Julian Molina 5bc7b86f99 Recovering from bad merge 2021-04-30 17:04:15 +02:00
Julian Molina 84e9948299 Merge pull request #862 from julian-molina/plugins-docs
Contribution: Footer update
2021-04-30 15:03:34 +02:00
Julian Molina 36d6001d50 Footer update 2021-04-30 15:03:13 +02:00
Julian Molina afca80cbf1 Revert "Merge pull request #861 from maxspecktor/plugins-docs"
This reverts commit 7c62e64da9, reversing
changes made to 102dd5aa14.
2021-04-30 13:55:57 +02:00
Luis Fernando Molina 63d0147f69 Merge pull request #858 from NITEMAN/docker
Improve docker info
2021-04-30 07:54:44 -04:00
Julian Molina 7c62e64da9 Merge pull request #861 from maxspecktor/plugins-docs
Contribution: My Superalgos Review
2021-04-30 13:50:54 +02:00
Julian Molina 300ae26781 Delete contribute-to-superalgos-014-tutorial-step-update-the-app.json 2021-04-30 13:48:57 +02:00
Julian Molina 1d8bd433fd Delete contribute-to-superalgos-013-tutorial-step-welcome-back.json 2021-04-30 13:48:16 +02:00
Julian Molina 2e45e74ebb Delete contribute-to-superalgos-012-tutorial-step-lets-switch-already.json 2021-04-30 13:47:48 +02:00
Julian Molina f101a7eb6c Delete contribute-to-superalgos-008-tutorial-step-switching-branches.json 2021-04-30 13:47:29 +02:00
Julian Molina f117296ba9 Delete contribute-to-superalgos-007-tutorial-step-what-about-free-riders.json 2021-04-30 13:46:39 +02:00
max specktor 99ae95cf5b Fixed typo and changed some develop branch references to plugins/docs 2021-04-30 12:20:29 +02:00
max specktor 2e735d2395 Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-04-30 12:00:10 +02:00
max specktor 1ddf921a59 My Superalgos Review 2021-04-30 11:51:46 +02:00
Julian Molina 102dd5aa14 Merge pull request #859 from julian-molina/plugins-docs
Contribution: Random Stuff
2021-04-30 10:48:11 +02:00
Julian Molina 216e2f38e1 Random Stuff 2021-04-30 10:46:48 +02:00
Pedro González Serrano 0792bed42c Improve docker info 2021-04-30 08:07:56 +02:00
Julian Molina 5dca2edf44 Merge pull request #853 from 0xperez/plugins-docs
Translated Contribute to Superalgos Tutorial
2021-04-29 19:47:18 +02:00
Luis Fernando Molina 9d2c818372 API Fetcher bot, multi page feature bug fixed 2021-04-29 19:43:43 +02:00
Luis Fernando Molina a59418a386 API Fetcher bot, multi page feature implemented 2021-04-29 19:15:08 +02:00
Luis Fernando Molina 3e70cda005 API Fetcher bot, primary keys management 2021-04-29 18:08:57 +02:00
Luis Fernando Molina 2049216ab7 API Fetcher bot, basic implementation 2021-04-29 17:39:35 +02:00
Luis Fernando Molina 1313529204 Merge pull request #854 from NITEMAN/docker-tagging
Docker tagging & cleanup
2021-04-29 09:20:14 -04:00
Luis Fernando Molina b459ef91a2 Merge pull request #855 from ssplatt/discord-integration
fixes some ui elements of the social bots
2021-04-29 09:16:55 -04:00
Brett Taylor c28542bdcc fixes some ui elements of the social bots 2021-04-29 08:52:35 -04:00
Pedro González Serrano 3e1829cb3e Update docker run instructions 2021-04-29 13:23:09 +02:00
Pedro González Serrano 866932658f Remove duplicated namespace 2021-04-29 13:06:03 +02:00
Pedro González Serrano 618c1b323e Add tagging for develop branch 2021-04-29 12:33:39 +02:00
Pedro González Serrano 362a561bf6 Fix docker tagging 2021-04-29 12:20:50 +02:00
0xperez c828d92d42 Translated Contribute to Superalgos Tutorial 2021-04-28 22:37:00 +02:00
Julian Molina 19afab17c4 Merge pull request #852 from 9808us/plugins-docs
Fix fourth Not fifth bot english + italian
2021-04-28 16:57:05 +02:00
9808us 704ffb48e9 Fix fourth Not fifth bot english + italian 2021-04-28 16:36:05 +02:00
Smidy13 be094ba536 Renaming Variables to More Accurate Names, Adding in Promises for Functions 2021-04-28 22:50:51 +12:00
Julian Molina 5166d936e5 Merge pull request #850 from 0xperez/plugins-docs
Plugins docs
2021-04-28 11:02:56 +02:00
0xperez 0d944dd532 Translating Basic Edu Tutorial - Page 006 to 055 2021-04-28 08:59:23 +02:00
Smidy13 d052098b66 Moving back if statement moved during testing, setting InvalidDate at right point 2021-04-28 17:45:02 +12:00
Smidy13 0b9af11663 Bug Fix: Unnecessary Halt in getOHLCVs, Handling for Invalid Start Date on getOHLCVs & Handling for Exchange maintenance over limit 2021-04-28 17:13:45 +12:00
Luis Fernando Molina f0ad6c51eb Merge pull request #847 from ssplatt/discord-webhook-announce
WIP: Discord webhook announce
2021-04-27 20:50:58 -04:00
0xperez 51f8d1be23 Translating Basic Edu Tutorial - Page 036 to 043 2021-04-27 22:22:34 +02:00
Brett Taylor 3831809f6c add more discord bot config and docs 2021-04-27 14:41:06 -04:00
Brett Taylor f59dbeec3b initial discord webook bot 2021-04-27 09:39:10 -04:00
Julian Molina 05cb622da1 Merge pull request #844 from 0xperez/plugins-docs
Translating Basic Edu Tutorial - Page 002 to 017
2021-04-27 09:42:16 +02:00
0xperez 1a7fe13fb6 Translating Basic Edu Tutorial - Page 023 to 035 2021-04-27 08:07:47 +02:00
Luis Fernando Molina 396feb5c6b Merge pull request #845 from Luis-Fernando-Molina/develop
Contribution: Important Bug Fixed at Lighting Path Function Impacting sequence of same type nodes.
2021-04-26 18:08:52 -04:00
Luis Fernando Molina 2fc11db5b2 Important Bug Fixed at Lighting Path Function Impacting sequence of same type nodes. 2021-04-27 00:07:53 +02:00
0xperez cab94f8cd1 Translating Basic Edu Tutorial - Page 018 to 022 2021-04-26 22:03:52 +02:00
0xperez eff024dbbf Translating Basic Edu Tutorial - Page 002 to 017 2021-04-26 20:30:13 +02:00
Luis Fernando Molina a380bd8b05 Merge pull request #836 from harrellbm/develop
Create Windows Shortcut Script
2021-04-26 10:01:32 -04:00
Luis Fernando Molina 0e94b41d97 Merge pull request #843 from Luis-Fernando-Molina/develop
Contribution: Reapplied Telegram Bot Test Message definition
2021-04-26 09:42:37 -04:00
Luis Fernando Molina 576c930476 Reapplied Telegram Bot Test Message definition 2021-04-26 15:41:51 +02:00
Luis Fernando Molina 0184cc64d5 Merge pull request #824 from Luis-Fernando-Molina/develop
Contribution: API Data Fetcher Bots Implementation
2021-04-26 09:40:23 -04:00
Luis Fernando Molina bcc2513ff1 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-26 15:39:47 +02:00
Luis Fernando Molina 295b082521 Merge pull request #838 from Smidy13/develop
Bug Fix: 'Closing' state of Close Stage, Trading Session getting stuck on Run Request Sent & Improvement: Telegram Bot Test Function
2021-04-26 09:36:43 -04:00
Julian Molina 0ada5377c9 Merge pull request #839 from scarolan/plugins-docs
My Superalgos Review
2021-04-26 13:59:50 +02:00
Julian Molina 7d26bd3309 Merge pull request #837 from Smidy13/plugins-docs
Docs-Nodes: Announcement Node
2021-04-26 13:55:40 +02:00
Smidy13 9419d0b849 Adding ProjectSchema changes for Telegram Test Function. Also Bug Fix: Tutorial Not Loading 2021-04-26 17:34:09 +12:00
Brenden Harrell 290715c2a9 Initial work on Revision 4 2021-04-25 21:00:02 -06:00
Smidy13 17d21c501d Improvement: Telegram Test Function 2021-04-26 00:40:30 +12:00
Sean Carolan d90aeda34e My Superalgos Review 2021-04-25 12:35:01 +00:00
Smidy13 d9f4fef9ae Bug Fix: Trading Session getting stuck on Run Request Sent 2021-04-25 21:23:23 +12:00
Smidy13 ac29a6f863 Bug Fix: Adding in Handling for 'Closing' state of Close Stage 2021-04-25 18:35:46 +12:00
Smidy13 dbfac533c7 Docs-Nodes: Announcement Node 2021-04-25 09:06:49 +12:00
Smidy d5f37611e9 Merge pull request #9 from Superalgos/develop
Merge Develop
2021-04-25 08:43:02 +12:00
Luis Fernando Molina ece6b383e5 Stuck at possible bug on Lignting Path Function 2021-04-24 21:30:25 +02:00
Brenden Harrell fc4aa929e5 Rename Folder Launch-Scripts 2021-04-24 12:42:25 -06:00
Brenden Harrell 204cf9e3b6 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-24 10:12:17 -06:00
Brenden Harrell 2e309856ad move linux lauch script to GUI-Launch folder 2021-04-24 10:12:03 -06:00
Brenden Harrell ea1ff46c20 Create windows shortcut script 2021-04-24 10:42:28 -05:00
Luis Fernando Molina ba4eca543a Merge pull request #834 from harrellbm/develop
Simple Launch Scripts
2021-04-24 08:55:41 -04:00
Luis Fernando Molina 25c3e2d9a7 Merge pull request #835 from Smidy13/develop
Bug Fix: Close Stage Event not triggering / Improvement: Bot Using Commands and Greater Assistance
2021-04-24 08:54:09 -04:00
Smidy13 ffa1b25510 Improvement: Bot Using Commands and Greater Assistance 2021-04-24 22:13:08 +12:00
Smidy13 ebd1148e1f Bug Fix: Close Stage Event not triggering 2021-04-24 20:44:41 +12:00
Smidy13 5e0d39cb98 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-24 16:38:22 +12:00
Brenden Harrell 6b3acaa720 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-23 21:29:04 -05:00
Brenden Harrell afa1b8e1af windows launch script 2021-04-23 21:21:32 -05:00
Brenden Harrell 109ea8ff02 Linux Launch Script 2021-04-23 20:53:29 -05:00
Luis Fernando Molina 5d1804853d Tutorial Bug new text to refresh the UI 2021-04-23 23:00:28 +02:00
Luis Fernando Molina cbfdf6c321 Merge pull request #833 from 9808us/develop
Fix Left click with Right click
2021-04-23 12:44:00 -04:00
9808us bb4ebf1864 Fix Left click with Right click 2021-04-23 15:28:10 +02:00
Julian Molina e8afe2be01 Merge pull request #831 from harrellbm/plugins-docs
Setting up a New Chart Tutorial Revision 3
2021-04-21 20:23:36 +02:00
Brenden Harrell 0b5dc2200b Merge branch 'plugins-docs' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-04-21 12:18:22 -05:00
Brenden Harrell e59377e1f0 Update Workspace 2021-04-21 12:17:20 -05:00
Brenden Harrell 005dbbbbf7 Setting up a new Chart Tutorial Revision 3 2021-04-21 12:14:01 -05:00
Luis Fernando Molina 593258668b Ready to code the fetching of data from the API 2021-04-21 18:55:46 +02:00
Luis Fernando Molina 62bf2d0e5f Reaching the API Data Fetcher Fetching Process while Debugging. 2021-04-20 22:37:31 +02:00
Luis Fernando Molina 6e2742a930 Bug Fixed preventing Tasks to start 2021-04-20 21:19:31 +02:00
Luis Fernando Molina dde871e57e API Data Fetcher UI code fully implemented 2021-04-20 18:26:01 +02:00
Luis Fernando Molina 91b9969f68 API Data Fetcher added to UI code 2021-04-20 17:34:57 +02:00
Luis Fernando Molina 89bd9393a7 App Schema File Splitted into Individual Schema Documents Files 2021-04-20 15:31:23 +02:00
Luis Fernando Molina ee7cb0c835 API Map Schema at 90% 2021-04-20 14:31:03 +02:00
Smidy13 7c75576731 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-20 17:40:52 +12:00
Luis Fernando Molina 88a8b9d702 Get all News Messari Endpoint Fully Mapped 2021-04-19 21:02:25 +02:00
Luis Fernando Molina fca33e54ee Merge pull request #828 from Superalgos/plugins-docs
Token Task Force Docs
2021-04-19 14:06:49 -04:00
Luis Fernando Molina 88aa4f8838 Merge pull request #827 from Superalgos/plugins-docs
Token Task Force Docs
2021-04-19 14:06:09 -04:00
Julian Molina 178e93fbb2 Merge pull request #826 from julian-molina/plugins-docs
Contribution: Token task force
2021-04-19 19:38:23 +02:00
Julian Molina 922fbeecef Token task force 2021-04-19 19:37:02 +02:00
Julian Molina 021b9b0fde Merge pull request #825 from julian-molina/plugins-docs
Contribution: Superalgos chat groups
2021-04-19 17:50:22 +02:00
Julian Molina 1bab9e5dbc Superalgos chat groups topic 2021-04-19 17:34:54 +02:00
Luis Fernando Molina 1c7c3184e1 API Map Schema at 75% 2021-04-19 16:48:15 +02:00
Brenden Harrell 8a01d25b53 Remove "Quick Fix" page 2021-04-19 09:34:01 -05:00
Brenden Harrell 17b7479c3e Change titles to start with Tutorial Step 2021-04-19 09:33:17 -05:00
Luis Fernando Molina c5e0753bc3 API Map Schema at 50% 2021-04-19 16:17:25 +02:00
Brenden Harrell 890455bc7a Merge branch 'develop' of https://github.com/Superalgos/Superalgos into plugins-docs 2021-04-19 09:12:34 -05:00
Luis Fernando Molina 34e080360c API Data Fetcher Bots Implementation 2021-04-19 14:32:57 +02:00
Luis Fernando Molina 623418ee14 Merge branch 'master' into plugins-docs 2021-04-19 13:13:14 +02:00
Luis Fernando Molina 92f3a86f65 Merge pull request #823 from Superalgos/develop
Superalgos Beta 9 SP 2
2021-04-19 07:12:20 -04:00
Julian Molina 188339c860 Merge pull request #822 from HenningBertsch/origin/plugins-docs
Fixed a typo where 'of' was written instead of 'off'
2021-04-19 09:31:55 +02:00
Henning Bertsch 3d778eaf63 Merge remote-tracking branch 'upstream/plugins-docs' into origin/plugins-docs 2021-04-19 09:20:27 +02:00
Julian Molina 1057c87a2d Merge pull request #816 from 0xperez/develop
Translating the Welcome Tutorial - Final Review
2021-04-18 21:18:50 +02:00
Luis Fernando Molina d4d26671b7 Merge pull request #821 from Luis-Fernando-Molina/develop
Contribution: Bug Fix: Tutorial loading without Content and needing Refresh of the UI
2021-04-18 10:27:19 -04:00
Luis Fernando Molina 70de50d9d0 Bug Fix: Tutorial loading without Content and needing Refresh of the UI 2021-04-18 16:26:10 +02:00
Luis Fernando Molina 5a7a0ea99d Merge pull request #820 from Luis-Fernando-Molina/develop
Contribution: Detaching from Parent Node and from Reference Parent now only possible with Double Click
2021-04-18 09:54:42 -04:00
Luis Fernando Molina 7348983569 Detaching from Parent Node and from Reference Parent now only possible with Double Click 2021-04-18 15:53:41 +02:00
Luis Fernando Molina 182dad6662 Merge pull request #818 from Luis-Fernando-Molina/develop
Contribution: Indicators Parameters Defined at the Task Level
2021-04-18 09:04:32 -04:00
Luis Fernando Molina cbba6e5a2e Indicators Parameters Defined at the Task Level 2021-04-18 14:34:43 +02:00
0xperez 7bf7f7be83 Translating the Welcome Tutorial - Final Review 2021-04-17 12:05:11 +02:00
Henning Bertsch eaa71e5b23 Fixed a typo where the docs referred to the 'off state' but written was 'of' 2021-04-17 10:52:29 +02:00
Luis Fernando Molina 610c1db268 Merge branch 'master' into plugins-docs 2021-04-16 18:10:49 +02:00
Luis Fernando Molina a2c4c93dff Merge pull request #814 from Superalgos/develop
Superalgos Beta 9 SP1
2021-04-16 12:07:03 -04:00
Julian Molina 18c50f1276 Merge pull request #813 from julian-molina/develop
Contribution: Star request on main tutorials
2021-04-16 17:40:23 +02:00
Julian Molina 3b3b889f52 Star request on main tutorials 2021-04-16 17:37:54 +02:00
Julian Molina 7572e76e2c Merge pull request #812 from julian-molina/develop
Contribution: First token task force task
2021-04-16 11:05:24 +02:00
Julian Molina a370158e09 First token task force task 2021-04-16 11:04:04 +02:00
Julian Molina 1c351b80b9 Merge pull request #809 from Noeljarillo/develop
Contribution: This is my contribution to Superalgos
2021-04-15 10:01:55 +02:00
Julian Molina 7dfd20020a Merge pull request #808 from vaskosmihaylov/develop
Contribution: My Superalgos Review
2021-04-15 09:55:28 +02:00
Noeljarillo 047f2be264 [ES trans 2] 2021-04-15 00:35:03 +02:00
Noeljarillo c77a9f4041 [ES transalation] 2021-04-14 23:53:29 +02:00
Noeljarillo 487c797450 This is my contribution to Superalgos 2021-04-14 22:45:05 +02:00
Noeljarillo eda9cfa0ac Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-14 22:37:33 +02:00
vaskosmihaylov 6efb50f04e My Superalgos Review 2021-04-14 02:07:00 +03:00
vaskosmihaylov 5c5ec99158 My Superalgos Review 2021-04-14 01:20:49 +03:00
Julian Molina 494d4fcbbb Merge pull request #807 from julian-molina/develop
Contribution: Contribute tutorial plugins-docs branch update
2021-04-13 14:50:11 +02:00
Julian Molina b5c937bda5 Contribute tutorial plugins-docs branch update 2021-04-13 14:49:26 +02:00
Noeljarillo 0f50f3e378 This is my contribution to Superalgos 2021-04-13 12:19:19 +02:00
Julian Molina bfe45b1feb Merge pull request #805 from 9808us/develop
Contribution: This is my contribution to Superalgos
2021-04-13 10:08:53 +02:00
9808us 6232276012 This is my contribution to Superalgos 2021-04-13 09:58:57 +02:00
9808us c5ebfe1f6c Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-13 08:40:23 +02:00
Luis Fernando Molina 7e67c1a200 Merge pull request #801 from Luis-Fernando-Molina/develop
Contribution: Update CCXT library to version 1.47.49
2021-04-12 08:27:06 -04:00
Luis Fernando Molina 101ceb41d0 Update CCXT library to version 1.47.49 2021-04-12 14:25:11 +02:00
Luis Fernando Molina c1df92ad42 Merge pull request #800 from Smidy13/develop
Documentation Updates
2021-04-12 08:02:18 -04:00
Smidy13 68686165c3 Social Bots Documentation Update 2021-04-12 23:06:13 +12:00
Smidy13 942f518ba5 Revert "Bug Fix: Getting Started Tutorial Not Loading"
This reverts commit daf5eb465e.
2021-04-12 23:02:35 +12:00
Smidy ef49e7d12a Merge pull request #6 from Superalgos/develop
Updating Local Fork
2021-04-12 22:56:42 +12:00
Julian Molina 73444d97b5 Merge pull request #799 from raubot/develop
Contribution: This is my contribution to Superalgos
2021-04-11 23:27:34 +02:00
Jason Hardy 84cc5f30a0 This is my contribution to Superalgos 2021-04-11 16:14:02 -05:00
Jason Hardy 6c6b204072 This is my contribution to Superalgos 2021-04-11 16:02:25 -05:00
Jason Hardy 1201700332 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-11 15:33:08 -05:00
Julian Molina fd8619f2c3 Merge pull request #798 from julian-molina/develop
Contribution: Contribute tutorial plugins-docs branch update
2021-04-11 19:02:40 +02:00
Julian Molina 916562f632 Contribute tutorial plugins-docs branch update 2021-04-11 18:59:48 +02:00
Julian Molina 58a5fc59dc Merge pull request #796 from brycey12/develop
Contribution: My Superalgos Review
2021-04-11 17:35:44 +02:00
brycey12 48d084e2b3 My Superalgos Review 2021-04-11 23:04:52 +10:00
Julian Molina 36200eae5d Merge pull request #795 from 0xperez/develop
Completed first translation of the Welcome Tutorial in Italian
2021-04-11 11:01:10 +02:00
Julian Molina 9e8b758c39 Update welcome-to-superalgos-062-tutorial-step-machines-learn-too.json 2021-04-11 10:46:14 +02:00
Jason Hardy 67afd2c6a3 This is my contribution to Superalgos 2021-04-10 20:26:58 -05:00
0xperez 9a8d14f34e Translating the Welcome Tutorial - Page 63 to 112 2021-04-10 19:16:20 +02:00
0xperez 194ee13778 Translating the Welcome Tutorial - Page 58 to 62 2021-04-10 14:46:38 +02:00
Julian Molina 9769761b4d Merge pull request #793 from cozed-gh/develop
Contribution: Omega One Data Mine and Docs
2021-04-09 16:33:36 +02:00
cozed-gh 92c3d189a1 Name change to Omega-One 2021-04-09 16:28:02 +02:00
cozed-gh e9c00276b7 Delete Omega One.json 2021-04-09 16:27:44 +02:00
cozed-gh 89f07ef649 New name "Omega One" 2021-04-09 15:25:26 +02:00
cozed-gh 114d834d36 Merge branch 'develop' of https://github.com/cozed-gh/Superalgos into develop 2021-04-09 15:19:11 +02:00
cozed-gh cea708239e Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-09 15:14:23 +02:00
cozed-gh e01ff6b78f Omega One Data Mine docs 2021-04-09 15:14:04 +02:00
cozed-gh e07253124c Change name of Omega to Omega One 2021-04-09 15:09:45 +02:00
Luis Fernando Molina 124fd3040d Merge pull request #791 from Luis-Fernando-Molina/develop
Contribution: Bug FIX: Coninbase Pro handling of cancelled orders
2021-04-09 08:10:02 -04:00
Luis Fernando Molina 17afa41ccb Bug FIX: Coninbase Pro handling of cancelled orders 2021-04-09 14:09:44 +02:00
Luis Fernando Molina 8cd9f15cb8 Merge pull request #788 from ssplatt/update-key-docs
update docs for coinbase pro api key password
2021-04-09 06:59:05 -04:00
Julian Molina 3075ecfc24 Merge pull request #790 from cozed-gh/develop
Contribution: Omega One Data Mine docs
2021-04-09 12:31:30 +02:00
cozed-gh c5fd0cb584 Merge branch 'develop' of https://github.com/cozed-gh/Superalgos into develop 2021-04-09 12:14:54 +02:00
cozed-gh a3c1edaa75 Omega One Data Mine (yes, it will become a series of indicators) :) 2021-04-09 11:58:07 +02:00
ssplatt 367a47fe71 update docs for coinbase pro api key password 2021-04-08 22:44:18 -04:00
Luis Fernando Molina c93f58dd01 Merge pull request #787 from Luis-Fernando-Molina/develop
Contribution: Coninbase Pro handling of cancelled orders
2021-04-08 17:33:31 -04:00
Luis Fernando Molina bfc83b2e32 Coninbase Pro handling of cancelled orders 2021-04-08 23:32:35 +02:00
Luis Fernando Molina 6c75258291 Merge pull request #785 from ssplatt/api-key-password
Add password to api key configuration
2021-04-08 16:16:18 -04:00
Julian Molina 562ff5efe0 Merge pull request #786 from julian-molina/develop
Contribution: Notes on how to contribute tutorials
2021-04-08 20:35:17 +02:00
Julian Molina a82959de1a Notes on how to contribute tutorials 2021-04-08 20:34:26 +02:00
ssplatt 2c01d2177a cleanup whitespace 2021-04-08 12:52:40 -04:00
ssplatt b7ac28b5c7 add password to api key config 2021-04-08 12:51:10 -04:00
Julian Molina 45254f3f10 Merge pull request #784 from harrellbm/develop
Charting Space Tutorial revision 2
2021-04-08 16:56:25 +02:00
Noeljarillo f7c2358d66 This is my contribution to Superalgos 2021-04-08 16:15:22 +02:00
Brenden Harrell c9e26f5396 Updated Workspace Creating Custom Charts 2021-04-08 08:40:21 -05:00
Brenden Harrell d3f514e66a Revised Charting Space Tutorial pt2 2021-04-08 08:34:49 -05:00
Noeljarillo a38c4078ac This is my contribution to Superalgos 2021-04-08 14:36:43 +02:00
Noeljarillo 139c8bb9fd This is my contribution to Superalgos 2021-04-08 14:11:40 +02:00
Brenden Harrell 1144e5ee4a Revisions to Charting Space Tutorial pt 1 2021-04-07 22:12:39 -05:00
Brenden Harrell 75cb6d54c3 title update 2021-04-07 07:00:49 -05:00
Smidy13 daf5eb465e Bug Fix: Getting Started Tutorial Not Loading 2021-04-07 23:34:58 +12:00
Luis Fernando Molina d35648ef08 Merge branch 'develop' into plugins-docs 2021-04-06 21:17:25 +02:00
Luis Fernando Molina 503587206f Merge pull request #777 from Luis-Fernando-Molina/develop
Contribution: New Branch Plugins/Docs
2021-04-06 15:15:57 -04:00
Luis Fernando Molina 802b422b40 Merge pull request #778 from Luis-Fernando-Molina/plugins-docs
Plugins docs
2021-04-06 15:15:28 -04:00
Luis Fernando Molina 418c6bb83e Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-06 21:09:24 +02:00
Luis Fernando Molina e9f4f1c2a7 New Branch Plugins/Docs 2021-04-06 21:08:38 +02:00
Julian Molina 1aa8c87ee6 Merge pull request #776 from julian-molina/develop
Contribution: Contributing tutorials
2021-04-06 20:38:48 +02:00
Julian Molina cffcb79662 Contributing tutorials 2021-04-06 20:38:00 +02:00
Julian Molina 442cd88bd2 Merge pull request #775 from julian-molina/develop
Contribution: How to contribute tutorials
2021-04-06 20:30:08 +02:00
Julian Molina 4f82fa8125 How to contribute tutorials 2021-04-06 20:28:44 +02:00
Luis Fernando Molina 5b0e548204 Merge pull request #773 from Smidy13/develop
Bug Fix for Announcements + Browser Type / Version Check
2021-04-06 14:08:11 -04:00
cozed-gh 9894ac5e33 Merge branch 'develop' of https://github.com/cozed-gh/Superalgos into develop 2021-04-06 13:48:42 +02:00
cozed-gh 0c85f0df73 Merge pull request #1 from Superalgos/develop
Develop merge 2021-04-06
2021-04-06 12:25:12 +02:00
Julian Molina 844d1313c9 Merge pull request #772 from harrellbm/develop
Contribution: Revise Charting Space Tutorial and Add Creating Custom Charts Workspace
2021-04-06 10:22:29 +02:00
Smidy13 8e2172afd3 Browser User Agent Check + Warning 2021-04-06 14:40:00 +12:00
Smidy13 2bc7f91641 Bug Fix: Allow Announcements on Create Order Events 2021-04-06 10:40:38 +12:00
Brenden Harrell c565222963 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-04-05 17:35:01 -05:00
Brenden Harrell 0aab8e4828 Add Creating Custom Charts Workspace 2021-04-05 17:34:48 -05:00
Brenden Harrell 922f6dd9ce Revise How to set up a new Chart Tutorial docs 2021-04-05 17:34:20 -05:00
Julian Molina d22141bd6c Merge pull request #771 from julian-molina/develop
Contribution: Tutorial node page upgrade
2021-04-05 21:12:24 +02:00
Julian Molina de3e983504 Tutorial node page upgrade 2021-04-05 21:11:39 +02:00
Smidy 52b9d29c58 Merge pull request #4 from Superalgos/develop
Pulling Latest Changes to Smidy13 Fork
2021-04-05 14:10:45 +12:00
Brenden Harrell 8ad6838caf Merge remote-tracking branch 'upstream/master' 2021-04-03 09:05:50 -05:00
Brenden Harrell 911529b0cc Merge remote-tracking branch 'upstream/master' into develop 2021-04-03 08:47:36 -05:00
cozed-gh 72f135d983 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-03-16 08:58:37 +01:00
Brenden Harrell 32f0602043 My Superalgos Review 2021-03-14 20:54:07 -05:00
cozed-gh f0f9014700 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-03-09 12:29:29 +01:00
cozed-gh b058b0eff2 Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-03-09 12:18:06 +01:00
cozed-gh 0805284d5a Started the "User Examples" docs 2021-03-09 12:13:46 +01:00
cozed-gh aa0f66a53a Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-03-09 07:25:23 +01:00
cozed-gh 41b3b7f64a Data-Mine 'Omega' 2021-03-08 00:44:14 +01:00
cozed-gh 1ab4856a6c Merge branch 'develop' of https://github.com/Superalgos/Superalgos into develop 2021-03-08 00:40:15 +01:00
cozed-gh dd7b200b6e Merge https://github.com/cozed-gh/Superalgos into develop 2021-03-08 00:15:55 +01:00
18841 changed files with 1589858 additions and 3215136 deletions

No files matched your search

+11
View File
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "npm" # See documentation for possible values
directory: "/Client" # Location of package manifests
schedule:
interval: "daily"
+20 -4
View File
@@ -3,6 +3,8 @@ name: Publish Docker image
on:
push:
branches: [master, develop]
release:
types: [published, created, edited]
jobs:
publish:
@@ -12,16 +14,22 @@ jobs:
- id: repository
uses: ASzc/change-string-case-action@v1
with:
string: "${{ github.repository }}/${{ github.event.repository.name }}"
string: "${{ github.repository }}"
- uses: actions/checkout@v2
- name: Preparation
id: prep
run: |
REGISTRY="ghcr.io"
IMAGE="${REGISTRY}/${{ steps.repository.outputs.lowercase }}"
TAGS="${IMAGE}:${{ github.sha }}"
if [[ $GITHUB_REF == ref/head/master ]]; then
TAGS="${TAGS},${IMAGE}:latest"
TAGS="${IMAGE}:${{ github.sha }},${IMAGE}:latest"
REF=${GITHUB_REF,,}
PREFIX="$(dirname $REF)"
SUFFIX="$(basename $REF)"
if [[ $PREFIX = "refs/heads" ]]; then
TAGS="${TAGS},${IMAGE}:${SUFFIX}"
elif [[ $PREFIX = "refs/tags" ]]; then
RELEASE=${SUFFIX#"superalgos-"}
TAGS="${TAGS},${IMAGE}:${RELEASE}"
fi
echo ::set-output name=tags::${TAGS}
- name: Login in to registry
@@ -30,9 +38,17 @@ jobs:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Available platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Push to registry
uses: docker/build-push-action@v2
with:
push: true
file: ./Docker/Dockerfile
tags: ${{ steps.prep.outputs.tags }}
platforms: linux/amd64,linux/arm64,linux/arm/v7
+7 -2
View File
@@ -4,7 +4,12 @@ My-Workspaces
debug.log
.DS_Store
*.db
Projects/Superalgos/Icons/Thumbs.db
Projects/Foundations/Icons/Thumbs.db
*.bat
!launch-windows.bat
!create-shortcut-windows.bat
!uninstall-shortcut-windows.bat
*.exe
node_modules
launch.json
.idea
+10
View File
@@ -0,0 +1,10 @@
{
"folders": [
{
"path": "C:\\Superalgos"
}
],
"settings": {
"search.maintainFileSearchCache": true
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"folders": [
{
"path": "C:\\Superalgos"
}
],
"settings": {
"search.maintainFileSearchCache": true
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"folders": [
{
"path": "C:\\Superalgos"
}
],
"settings": {
"search.maintainFileSearchCache": true
}
}
+1
View File
@@ -10,6 +10,7 @@
"**/Data-Storage": true,
"**/Documentation": true,
"**/Log-Files": true,
"**/node_modules": true,
"**/Deprecated-Code": true
},
"search.maintainFileSearchCache": true
-199
View File
@@ -1,199 +0,0 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>Superalgos</title>
<meta name="description" content="Free and Open Source Crypto Trading Tools">
<link rel="stylesheet" href="main.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="credits.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="tutorial.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="docs.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="context-menu.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="font-awasome.css" type="text/css" />
<link rel="stylesheet" href="prism.css" type="text/css" />
<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 src="externalScripts/CCapture.all.min.js"></script>
<script src="externalScripts/prism.js"></script>
<!-- Documentation Style Sheets -->
<!-- -->
<script type="text/javascript">
function loadCanvas() {
// Prevent click-jacking
try {
if (window == window.top || window.chrome && chrome.app && chrome.app.window) {
document.documentElement.style.display = 'block'
} else {
top.location = self.location
}
} catch (e) { console.error('CJ protection', e) }
try {
loadSuperalgos();
} catch (err) {
console.log("[ERROR] UI can not be started. Please check that WebServer is running.", err);
}
}
function onResize() {
try {
if (canvas === undefined) { return }
if (canvas.eventHandler === undefined) { return }
if (DISABLE_BROWSER_RESIZE_EVENT === true) { return }
canvas.eventHandler.raiseEvent('Browser Resized')
} catch (err) {
console.log('Error Resizing. ' + err.stack)
}
}
</script>
</head>
<body id="body" onload="loadCanvas()"
style="overflow:hidden; background: url(Images/superalgos-platform.jpg); background-size: cover;"
onresize="onResize()">
<div id="contributors" class="credits">
<p style="font-size: 120%;">Superalgos is <span class="credits-red">open source</span>, <span class="credits-red">forever free</span> for <span class="credits-red">everyone</span>, and is <span class="credits-red">constantly improving</span> thanks to the involvement of contributors:</p>
<p style="font-size: 100%;">Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Ira Miller, matbenitez, bearcanrun, nikolabjelo, 9808us, pmmax, suttridge, Basalt09, Mhnramin, 0xperez, infin1t3, benitezme, whtv, cozed-gh, Eduardo678-dotcom, Smidy13, teehanming, 64bittuning, joenij, apronotti, Noeljarillo, ssplatt, rico4dev, DougJCook, mane, Cordo-van-Saviour, CarnivalBen, Sil3ntLight, pisukesoramame, Edodi, harrellbm, CaptainJeff, Jeff Braun, Francisco J. Santillán, Norman, Viktoria B., Guillermo V., Daniel J., Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia M., Bashar A., Carlos V., Diego M., Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Mateo H., Lan T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B.</p>
<p style="font-size: 120%;">Please, <span class="credits-red">give a star to the Superalgos repo at GitHub.com...</span> It helps other devs find the project!</p>
<p id="credits-page-status-paragraph" class="credits-yellow">The UI is loading...</p>
</div>
<div id="masterApp"></div>
<div id="canvasApp"></div>
<div id="docs-space-div" class="docs-page" style="position:fixed; top:100000px; left:100000px"><div id="docs-content-div"></div></div>
<div id="chatApp" style="position:fixed; top:100000px; left:100000px">
<iframe id="chatIFrame" style="border:none; " height="2000" width="900"></iframe>
</div>
<div id="textAreaDiv"></div>
<div id="inputDiv" style="font-family:saira condensed;">&nbsp;</div>
<!-- Tutorial Template Divs -->
<div id="tutorialDiv" class="tutorial-step" style="position:fixed; top:100000px; left:100000px;"></div>
<div id="tutorialFormDiv" class="tutorial-form" style="position:fixed; top:100000px; left:100000px;">
<form>
<table class="tutorial-buttonsTable">
<tr>
<td align="center">
<label class="tutorial-font-small tutorial-stop-button"
onclick="UI.projects.superalgos.spaces.tutorialSpace.stop()"
value="">&nbsp;&nbsp;Stop&nbsp;&nbsp;&nbsp;</label>
</td>
<td align="center">
<label class="tutorial-font-small tutorial-skip-button"
onclick="UI.projects.superalgos.spaces.tutorialSpace.skip()"
value="">&nbsp;&nbsp;Skip&nbsp;&nbsp;&nbsp;</label>
</td>
<td align="center">
<label class="tutorial-font-small tutorial-previous-button"
onclick="UI.projects.superalgos.spaces.tutorialSpace.previous()" value="">Previous</label>
</td>
<td align="center">
<label class="tutorial-font-small tutorial-next-button"
onclick="UI.projects.superalgos.spaces.tutorialSpace.next()"
value="">&nbsp;&nbsp;Next&nbsp;&nbsp;&nbsp;</label>
</td>
</tr>
</table>
</form>
</div>
<div id="menu" class="docs-menu-table">
<div class="menu-row">
<div class="menu-item" onClick="window.contextMenu.editParagraph()">
<img src="Icons/Superalgos/docs-action-edit-paragraph.png" class="menu-img" title="Edit">
</div>
<div class="menu-item" onClick="window.contextMenu.toTitle()">
<img src="Icons/Superalgos/docs-title-style.png" class="menu-img" title="Title">
</div>
<div class="menu-item" onClick="window.contextMenu.toSubtitle()">
<img src="Icons/Superalgos/docs-subtitle-style.png" class="menu-img" title="Subtitle">
</div>
<div class="menu-item" onClick="window.contextMenu.toNote()">
<img src="Icons/Superalgos/docs-note-style.png" class="menu-img" title="Note">
</div>
<div class="menu-item" onClick="window.contextMenu.toJavascript()">
<img src="Icons/Superalgos/docs-js-code-style.png" class="menu-img" title="Javascript">
</div>
<div class="menu-item" onClick="window.contextMenu.toYouTubeVideo()">
<img src="Icons/Superalgos/docs-youtube-video-style.png" class="menu-img" title="Youtube">
</div>
<div class="menu-item" onClick="window.contextMenu.toBlock()">
<img src="Icons/Superalgos/docs-block-style.png" class="menu-img" title="Block">
</div>
</div>
<div class="menu-row">
<div class="menu-item" onClick="window.contextMenu.copyLink()">
<img src="Icons/Superalgos/docs-action-copy-to-clipboard.png" class="menu-img" title="Copy">
</div>
<div class="menu-item" onClick="window.contextMenu.toText()">
<img src="Icons/Superalgos/docs-text-style.png" class="menu-img" title="Text">
</div>
<div class="menu-item" onClick="window.contextMenu.toList()">
<img src="Icons/Superalgos/docs-list-style.png" class="menu-img" title="List">
</div>
<div class="menu-item" onClick="window.contextMenu.toSuccess()">
<img src="Icons/Superalgos/docs-success-style.png" class="menu-img" title="Success">
</div>
<div class="menu-item" onClick="window.contextMenu.toJson()">
<img src="Icons/Superalgos/docs-json-code-style.png" class="menu-img" title="Json">
</div>
<div class="menu-item" onClick="window.contextMenu.toGif()">
<img src="Icons/Superalgos/docs-gif-style.png" class="menu-img" title="Gif">
</div>
<div class="menu-item" onClick="window.contextMenu.toInclude()">
<img src="Icons/Superalgos/docs-include-style.png" class="menu-img" title="Include">
</div>
</div>
<div class="menu-row">
<div class="menu-item" onClick="window.contextMenu.toPlaceholder()">
<img src="Icons/Superalgos/docs-placeholder-style.png" class="menu-img" title="Placeholder">
</div>
<div class="menu-item" onClick="window.contextMenu.toSummary()">
<img src="Icons/Superalgos/docs-summary-style.png" class="menu-img" title="Summary">
</div>
<div class="menu-item" onClick="window.contextMenu.toCallout()">
<img src="Icons/Superalgos/docs-callout-style.png" class="menu-img" title="Callout">
</div>
<div class="menu-item" onClick="window.contextMenu.toImportant()">
<img src="Icons/Superalgos/docs-important-style.png" class="menu-img" title="Important">
</div>
<div class="menu-item" onClick="window.contextMenu.toTable()">
<img src="Icons/Superalgos/docs-table-style.png" class="menu-img" title="Table">
</div>
<div class="menu-item" onClick="window.contextMenu.toPng()">
<img src="Icons/Superalgos/docs-png-style.png" class="menu-img" title="Png">
</div>
<div class="menu-item" onClick="window.contextMenu.toSection()">
<img src="Icons/Superalgos/docs-section-style.png" class="menu-img" title="Section">
</div>
</div>
<div class="menu-row">
<div class="menu-item" onClick="window.contextMenu.deleteParagraph()">
<img src="Icons/Superalgos/docs-action-delete-paragraph.png" class="menu-img" title="Delete">
</div>
<div class="menu-item" onClick="window.contextMenu.toWebPageLink()">
<img src="Icons/Superalgos/docs-web-page-link-style.png" class="menu-img" title="Link">
</div>
<div class="menu-item" onClick="window.contextMenu.toAnchor()">
<img src="Icons/Superalgos/docs-anchor-style.png" class="menu-img" title="Anchor">
</div>
<div class="menu-item" onClick="window.contextMenu.toWarning()">
<img src="Icons/Superalgos/docs-warning-style.png" class="menu-img" title="Warning">
</div>
<div class="menu-item" onClick="window.contextMenu.toHierarchy()">
<img src="Icons/Superalgos/docs-hierarchy-style.png" class="menu-img" title="Hierarchy">
</div>
<div class="menu-item" onClick="window.contextMenu.toError()">
<img src="Icons/Superalgos/docs-error-style.png" class="menu-img" title="Error">
</div>
<div class="menu-item" onClick="window.contextMenu.toChapter()">
<img src="Icons/Superalgos/docs-chapter-style.png" class="menu-img" title="Chapter">
</div>
</div>
</div>
</body>
</html>
-54
View File
@@ -1,54 +0,0 @@
<h2 id="trading-engine">Trading Engine</h2>
<table class="definitionTable"><tr><td>
<img src="images/icons/nodes/png150/trading-engine.png" />
</td><td>
<strong>The trading engine hierarchy is the data structure used by the trading bot to keep runtime information highly accessible and exposed to others.</strong>
</td></tr></table>
<p>You will use this hierarchy for two main purposes:</p>
<p>The hierarchy exposes—literally—all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users. The hierarchy exposes—literally—all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users.</p>
<ul>
<li>
<p><strong>To let your trading systems:</strong> This allows strategies to keep track of and react to current and past events—including those involving the exchange, such as orders placed or filled—as the bot is running.</p>
</li>
<li>
<p><strong>To keep track of the actions:</strong> By analyzing runtime information, you may gain a detailed understanding of what happens, when, and why, throughout a trading session.</p>
</li>
</ul>
<p>The hierarchy exposes—literally—all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users.</p>
<div class="bs-callout bs-callout-success">Este callout se usa para resaltar una idea particularmente importante. Algo se sobresale, como una conclusion, o algo por el estilo.</div>
<p>The hierarchy exposes all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users. The hierarchy exposes all the information processed by the trading bot, providing a comprehensive feedback loop to trading systems and analysis capabilities to users.</p>
<div class="alert alert-info" role="alert"><i class="fa fa-info-circle"></i> <b>Note:</b> Esto es una nota, algo noteworthy.</div>
<div class="alert alert-success" role="alert"><i class="fa fa-check-square-o"></i> <b>Tip:</b> Esto es un tip.</div>
<div class="alert alert-warning" role="alert"><i class="fa fa-warning"></i> <b>Important:</b> Esto es algo importante.</div>
<div class="alert alert-danger" role="alert"><i class="fa fa-exclamation-circle"></i> <b>Warning:</b> Esto es una aviso de alerta.</div>
<h4 id="adding-a-trading-engine-node">Adding a Trading Engine Node</h4>
<p>Calculo que con este segundo nivel de titulo alcanza.</p>
<h4 id="este-es-otro-formato-tipico-de-la-doc--trading-engine">Este es otro formato tipico de la doc: Trading Engine</h4>
<table class="definitionTable"><tr><td>
<img src="images/icons/nodes/png50/trading-engine.png" />
</td><td>
The trading engine hierarchy is the data structure used by the trading bot to keep runtime information highly accessible and exposed to others.
</td></tr></table>
-151
View File
@@ -1,151 +0,0 @@
/* 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("A Superalgos Client cannot be started. Reason: the port " + port + " is already in use by another application.")
return
}
console.log('[ERROR] Client -> client-> uncaughtException -> err.message = ' + err.message)
console.log('[ERROR] Client -> client-> uncaughtException -> err.stack = ' + err.stack)
console.log('[ERROR] Client -> client-> uncaughtException -> err = ' + err)
process.exit(1)
})
process.on('unhandledRejection', (reason, p) => {
console.log('[ERROR] Client -> client-> unhandledRejection -> reason = ' + JSON.stringify(reason))
console.log('[ERROR] Client -> client-> unhandledRejection -> p = ' + JSON.stringify(p))
process.exit(1)
})
/* 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('./webServer.js')
let DATA_FILE_SERVER = require('./dataFileServer.js')
let PROJECT_FILE_SERVER = require('./projectFileServer.js')
let UI_FILE_SERVER = require('./uiFileServer.js')
let PLUGIN_SERVER = require('./pluginServer.js')
let EVENT_SERVER = require('./eventServer.js')
let TASK_MANAGER_SERVER = require('./taskManagerServer.js')
let CCXT_SERVER = require('./ccxtServer.js')
let WEB3_SERVER = require('./web3Server.js')
/* Network Interfaces */
let WEB_SOCKETS_INTERFACE = require('./webSocketsServer.js')
let HTTP_INTERFACE = require('./httpInterface.js')
try {
console.log('CLIENT SERVERS:')
console.log('')
WEB_SERVER = WEB_SERVER.newWebServer()
WEB_SERVER.initialize()
WEB_SERVER.run()
console.log('Web Server .................................................. Started')
UI_FILE_SERVER = UI_FILE_SERVER.newUIFileServer()
UI_FILE_SERVER.initialize()
UI_FILE_SERVER.run()
console.log('UI File Server .............................................. Started')
PROJECT_FILE_SERVER = PROJECT_FILE_SERVER.newProjectFileServer()
PROJECT_FILE_SERVER.initialize()
PROJECT_FILE_SERVER.run()
console.log('Project File Server ......................................... Started')
PLUGIN_SERVER = PLUGIN_SERVER.newPluginServer()
PLUGIN_SERVER.initialize()
PLUGIN_SERVER.run()
console.log('Plugin Server ............................................... Started')
DATA_FILE_SERVER = DATA_FILE_SERVER.newDataFileServer()
DATA_FILE_SERVER.initialize()
DATA_FILE_SERVER.run()
console.log('Data File Server ............................................ Started')
EVENT_SERVER = EVENT_SERVER.newEventServer()
EVENT_SERVER.initialize()
EVENT_SERVER.run()
console.log('Events Server ............................................... Started')
TASK_MANAGER_SERVER = TASK_MANAGER_SERVER.newTaskManagerServer(WEB_SOCKETS_INTERFACE, EVENT_SERVER)
TASK_MANAGER_SERVER.initialize()
TASK_MANAGER_SERVER.run()
console.log('Task Manager Server ......................................... Started')
CCXT_SERVER = CCXT_SERVER.newCCXTServer()
CCXT_SERVER.initialize()
CCXT_SERVER.run()
console.log('CCXT Server ................................................. Started')
WEB3_SERVER = WEB3_SERVER.newWeb3Server()
WEB3_SERVER.initialize()
WEB3_SERVER.run()
console.log('WEB3 Server ................................................. Started')
console.log('')
console.log('CLIENT INTERFACES:')
console.log('')
WEB_SOCKETS_INTERFACE = WEB_SOCKETS_INTERFACE.newWebSocketsInterface(EVENT_SERVER)
WEB_SOCKETS_INTERFACE.initialize()
WEB_SOCKETS_INTERFACE.run()
console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.WEB_SOCKETS_INTERFACE_PORT)
HTTP_INTERFACE = HTTP_INTERFACE.newHttpInterface(WEB_SERVER, DATA_FILE_SERVER, PROJECT_FILE_SERVER, UI_FILE_SERVER, PLUGIN_SERVER, CCXT_SERVER, WEB3_SERVER)
HTTP_INTERFACE.initialize()
HTTP_INTERFACE.run()
console.log('Http Interface .............................................. Listening at port ' + global.env.HTTP_INTERFACE_PORT)
console.log('')
console.log("You are running Superalgos Beta 9")
console.log('')
console.log("What's new? The following was implemented here:")
console.log('')
console.log('Market Data Structure ....................................... This allows any strategy to use data from markets different from the one it is running at.')
console.log('Exchange Data Structure ..................................... This allows any strategy to use data from exchanges and markets different from the one it is running at.')
console.log('Tensor Flow Integration ..................................... This allows the creation and training of ML models that later can be used for predictions.')
console.log('SA Token .................................................... This allows the project to compensate contributors that add value to it.')
console.log('')
console.log("What's next? At the development pipeline we have:")
console.log('')
console.log('Contribution Management ..................................... This will allow us to manage contributions at scale, and distribute the SA token more efficiently at each release.')
console.log('Infraestructure to sensor any API .......................... This will allow us to fetch data from any API, turn it into indicators and plot it.')
console.log('Usage of ML Predictions at Trading Systems .................. This will enable a new kind of Bot that can learn from data mined. Later that knowledge can be used at trading strategies.')
console.log('Ethereum Integration ........................................ This will allow mining data from an Ethereum network node, create indicators with it, an use it on strategies.')
console.log('')
} catch (err) {
console.log('[ERROR] Client -> Error = ' + err.stack)
}
File diff suppressed because it is too large. Load diff
-1
View File
@@ -1 +0,0 @@
export const version = "abi/5.0.0-beta.153";
-91
View File
@@ -1,91 +0,0 @@
"use strict";
// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI
import { arrayify } from "@ethersproject/bytes";
import { defineReadOnly } from "@ethersproject/properties";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
import { Reader, Writer } from "./coders/abstract-coder";
import { AddressCoder } from "./coders/address";
import { ArrayCoder } from "./coders/array";
import { BooleanCoder } from "./coders/boolean";
import { BytesCoder } from "./coders/bytes";
import { FixedBytesCoder } from "./coders/fixed-bytes";
import { NullCoder } from "./coders/null";
import { NumberCoder } from "./coders/number";
import { StringCoder } from "./coders/string";
import { TupleCoder } from "./coders/tuple";
import { ParamType } from "./fragments";
const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
export class AbiCoder {
constructor(coerceFunc) {
logger.checkNew(new.target, AbiCoder);
defineReadOnly(this, "coerceFunc", coerceFunc || null);
}
_getCoder(param) {
switch (param.baseType) {
case "address":
return new AddressCoder(param.name);
case "bool":
return new BooleanCoder(param.name);
case "string":
return new StringCoder(param.name);
case "bytes":
return new BytesCoder(param.name);
case "array":
return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);
case "tuple":
return new TupleCoder((param.components || []).map((component) => {
return this._getCoder(component);
}), param.name);
case "":
return new NullCoder(param.name);
}
// u?int[0-9]*
let match = param.type.match(paramTypeNumber);
if (match) {
let size = parseInt(match[2] || "256");
if (size === 0 || size > 256 || (size % 8) !== 0) {
logger.throwArgumentError("invalid " + match[1] + " bit length", "param", param);
}
return new NumberCoder(size / 8, (match[1] === "int"), param.name);
}
// bytes[0-9]+
match = param.type.match(paramTypeBytes);
if (match) {
let size = parseInt(match[1]);
if (size === 0 || size > 32) {
logger.throwArgumentError("invalid bytes length", "param", param);
}
return new FixedBytesCoder(size, param.name);
}
return logger.throwArgumentError("invalid type", "type", param.type);
}
_getWordSize() { return 32; }
_getReader(data) {
return new Reader(data, this._getWordSize(), this.coerceFunc);
}
_getWriter() {
return new Writer(this._getWordSize());
}
encode(types, values) {
if (types.length !== values.length) {
logger.throwError("types/values length mismatch", Logger.errors.INVALID_ARGUMENT, {
count: { types: types.length, values: values.length },
value: { types: types, values: values }
});
}
const coders = types.map((type) => this._getCoder(ParamType.from(type)));
const coder = (new TupleCoder(coders, "_"));
const writer = this._getWriter();
coder.encode(writer, values);
return writer.data;
}
decode(types, data) {
const coders = types.map((type) => this._getCoder(ParamType.from(type)));
const coder = new TupleCoder(coders, "_");
return coder.decode(this._getReader(arrayify(data)));
}
}
export const defaultAbiCoder = new AbiCoder();
-131
View File
@@ -1,131 +0,0 @@
"use strict";
import { arrayify, concat, hexlify } from "@ethersproject/bytes";
import { BigNumber } from "@ethersproject/bignumber";
import { defineReadOnly } from "@ethersproject/properties";
import { Logger } from "@ethersproject/logger";
import { version } from "../_version";
const logger = new Logger(version);
export function checkResultErrors(result) {
// Find the first error (if any)
const errors = [];
const checkErrors = function (path, object) {
if (!Array.isArray(object)) {
return;
}
for (let key in object) {
const childPath = path.slice();
childPath.push(key);
try {
checkErrors(childPath, object[key]);
}
catch (error) {
errors.push({ path: childPath, error: error });
}
}
};
checkErrors([], result);
return errors;
}
export class Coder {
constructor(name, type, localName, dynamic) {
// @TODO: defineReadOnly these
this.name = name;
this.type = type;
this.localName = localName;
this.dynamic = dynamic;
}
_throwError(message, value) {
logger.throwArgumentError(message, this.localName, value);
}
}
export class Writer {
constructor(wordSize) {
defineReadOnly(this, "wordSize", wordSize || 32);
this._data = arrayify([]);
this._padding = new Uint8Array(wordSize);
}
get data() { return hexlify(this._data); }
get length() { return this._data.length; }
_writeData(data) {
this._data = concat([this._data, data]);
return data.length;
}
// Arrayish items; padded on the right to wordSize
writeBytes(value) {
let bytes = arrayify(value);
if (bytes.length % this.wordSize) {
bytes = concat([bytes, this._padding.slice(bytes.length % this.wordSize)]);
}
return this._writeData(bytes);
}
_getValue(value) {
let bytes = arrayify(BigNumber.from(value));
if (bytes.length > this.wordSize) {
logger.throwError("value out-of-bounds", Logger.errors.BUFFER_OVERRUN, {
length: this.wordSize,
offset: bytes.length
});
}
if (bytes.length % this.wordSize) {
bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);
}
return bytes;
}
// BigNumberish items; padded on the left to wordSize
writeValue(value) {
return this._writeData(this._getValue(value));
}
writeUpdatableValue() {
let offset = this.length;
this.writeValue(0);
return (value) => {
this._data.set(this._getValue(value), offset);
};
}
}
export class Reader {
constructor(data, wordSize, coerceFunc) {
defineReadOnly(this, "_data", arrayify(data));
defineReadOnly(this, "wordSize", wordSize || 32);
defineReadOnly(this, "_coerceFunc", coerceFunc);
this._offset = 0;
}
get data() { return hexlify(this._data); }
get consumed() { return this._offset; }
// The default Coerce function
static coerce(name, value) {
let match = name.match("^u?int([0-9]+)$");
if (match && parseInt(match[1]) <= 48) {
value = value.toNumber();
}
return value;
}
coerce(name, value) {
if (this._coerceFunc) {
return this._coerceFunc(name, value);
}
return Reader.coerce(name, value);
}
_peekBytes(offset, length) {
let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;
if (this._offset + alignedLength > this._data.length) {
logger.throwError("data out-of-bounds", Logger.errors.BUFFER_OVERRUN, {
length: this._data.length,
offset: this._offset + alignedLength
});
}
return this._data.slice(this._offset, this._offset + alignedLength);
}
subReader(offset) {
return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc);
}
readBytes(length) {
let bytes = this._peekBytes(0, length);
this._offset += bytes.length;
// @TODO: Make sure the length..end bytes are all 0?
return bytes.slice(0, length);
}
readValue() {
return BigNumber.from(this.readBytes(this.wordSize));
}
}
-21
View File
@@ -1,21 +0,0 @@
"use strict";
import { getAddress } from "@ethersproject/address";
import { hexZeroPad } from "@ethersproject/bytes";
import { Coder } from "./abstract-coder";
export class AddressCoder extends Coder {
constructor(localName) {
super("address", "address", localName, false);
}
encode(writer, value) {
try {
getAddress(value);
}
catch (error) {
this._throwError(error.message, value);
}
return writer.writeValue(value);
}
decode(reader) {
return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));
}
}
-15
View File
@@ -1,15 +0,0 @@
"use strict";
import { Coder } from "./abstract-coder";
// Clones the functionality of an existing Coder, but without a localName
export class AnonymousCoder extends Coder {
constructor(coder) {
super(coder.name, coder.type, undefined, coder.dynamic);
this.coder = coder;
}
encode(writer, value) {
return this.coder.encode(writer, value);
}
decode(reader) {
return this.coder.decode(reader);
}
}
-165
View File
@@ -1,165 +0,0 @@
"use strict";
import { Logger } from "@ethersproject/logger";
import { version } from "../_version";
const logger = new Logger(version);
import { Coder, Writer } from "./abstract-coder";
import { AnonymousCoder } from "./anonymous";
export function pack(writer, coders, values) {
if (Array.isArray(values)) {
// do nothing
}
else if (values && typeof (values) === "object") {
let arrayValues = [];
coders.forEach(function (coder) {
arrayValues.push(values[coder.localName]);
});
values = arrayValues;
}
else {
logger.throwArgumentError("invalid tuple value", "tuple", values);
}
if (coders.length !== values.length) {
logger.throwArgumentError("types/value length mismatch", "tuple", values);
}
let staticWriter = new Writer(writer.wordSize);
let dynamicWriter = new Writer(writer.wordSize);
let updateFuncs = [];
coders.forEach((coder, index) => {
let value = values[index];
if (coder.dynamic) {
// Get current dynamic offset (for the future pointer)
let dynamicOffset = dynamicWriter.length;
// Encode the dynamic value into the dynamicWriter
coder.encode(dynamicWriter, value);
// Prepare to populate the correct offset once we are done
let updateFunc = staticWriter.writeUpdatableValue();
updateFuncs.push((baseOffset) => {
updateFunc(baseOffset + dynamicOffset);
});
}
else {
coder.encode(staticWriter, value);
}
});
// Backfill all the dynamic offsets, now that we know the static length
updateFuncs.forEach((func) => { func(staticWriter.length); });
let length = writer.writeBytes(staticWriter.data);
length += writer.writeBytes(dynamicWriter.data);
return length;
}
export function unpack(reader, coders) {
let values = [];
// A reader anchored to this base
let baseReader = reader.subReader(0);
// The amount of dynamic data read; to consume later to synchronize
let dynamicLength = 0;
coders.forEach((coder) => {
let value = null;
if (coder.dynamic) {
let offset = reader.readValue();
let offsetReader = baseReader.subReader(offset.toNumber());
try {
value = coder.decode(offsetReader);
}
catch (error) {
// Cannot recover from this
if (error.code === Logger.errors.BUFFER_OVERRUN) {
throw error;
}
value = error;
value.baseType = coder.name;
value.name = coder.localName;
value.type = coder.type;
}
dynamicLength += offsetReader.consumed;
}
else {
try {
value = coder.decode(reader);
}
catch (error) {
// Cannot recover from this
if (error.code === Logger.errors.BUFFER_OVERRUN) {
throw error;
}
value = error;
value.baseType = coder.name;
value.name = coder.localName;
value.type = coder.type;
}
}
if (value != undefined) {
values.push(value);
}
});
// @TODO: get rid of this an see if it still works?
// Consume the dynamic components in the main reader
reader.readBytes(dynamicLength);
// Add any named parameters (i.e. tuples)
coders.forEach((coder, index) => {
let name = coder.localName;
if (!name) {
return;
}
if (name === "length") {
name = "_length";
}
if (values[name] != null) {
return;
}
const value = values[index];
if (value instanceof Error) {
Object.defineProperty(values, name, {
get: () => { throw value; }
});
}
else {
values[name] = value;
}
});
for (let i = 0; i < values.length; i++) {
const value = values[i];
if (value instanceof Error) {
Object.defineProperty(values, i, {
get: () => { throw value; }
});
}
}
return Object.freeze(values);
}
export class ArrayCoder extends Coder {
constructor(coder, length, localName) {
const type = (coder.type + "[" + (length >= 0 ? length : "") + "]");
const dynamic = (length === -1 || coder.dynamic);
super("array", type, localName, dynamic);
this.coder = coder;
this.length = length;
}
encode(writer, value) {
if (!Array.isArray(value)) {
this._throwError("expected array value", value);
}
let count = this.length;
if (count === -1) {
count = value.length;
writer.writeValue(value.length);
}
logger.checkArgumentCount(count, value.length, "coder array" + (this.localName ? (" " + this.localName) : ""));
let coders = [];
for (let i = 0; i < value.length; i++) {
coders.push(this.coder);
}
return pack(writer, coders, value);
}
decode(reader) {
let count = this.length;
if (count === -1) {
count = reader.readValue().toNumber();
}
let coders = [];
for (let i = 0; i < count; i++) {
coders.push(new AnonymousCoder(this.coder));
}
return reader.coerce(this.name, unpack(reader, coders));
}
}
-13
View File
@@ -1,13 +0,0 @@
"use strict";
import { Coder } from "./abstract-coder";
export class BooleanCoder extends Coder {
constructor(localName) {
super("bool", "bool", localName, false);
}
encode(writer, value) {
return writer.writeValue(value ? 1 : 0);
}
decode(reader) {
return reader.coerce(this.type, !reader.readValue().isZero());
}
}
-25
View File
@@ -1,25 +0,0 @@
"use strict";
import { arrayify, hexlify } from "@ethersproject/bytes";
import { Coder } from "./abstract-coder";
export class DynamicBytesCoder extends Coder {
constructor(type, localName) {
super(type, type, localName, true);
}
encode(writer, value) {
value = arrayify(value);
let length = writer.writeValue(value.length);
length += writer.writeBytes(value);
return length;
}
decode(reader) {
return reader.readBytes(reader.readValue().toNumber());
}
}
export class BytesCoder extends DynamicBytesCoder {
constructor(localName) {
super("bytes", localName);
}
decode(reader) {
return reader.coerce(this.name, hexlify(super.decode(reader)));
}
}
-21
View File
@@ -1,21 +0,0 @@
"use strict";
import { arrayify, hexlify } from "@ethersproject/bytes";
import { Coder } from "./abstract-coder";
// @TODO: Merge this with bytes
export class FixedBytesCoder extends Coder {
constructor(size, localName) {
let name = "bytes" + String(size);
super(name, name, localName, false);
this.size = size;
}
encode(writer, value) {
let data = arrayify(value);
if (data.length !== this.size) {
this._throwError("incorrect data length", value);
}
return writer.writeBytes(data);
}
decode(reader) {
return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));
}
}
-17
View File
@@ -1,17 +0,0 @@
"use strict";
import { Coder } from "./abstract-coder";
export class NullCoder extends Coder {
constructor(localName) {
super("null", "", localName, false);
}
encode(writer, value) {
if (value != null) {
this._throwError("not null", value);
}
return writer.writeBytes([]);
}
decode(reader) {
reader.readBytes(0);
return reader.coerce(this.name, null);
}
}
-38
View File
@@ -1,38 +0,0 @@
"use strict";
import { BigNumber } from "@ethersproject/bignumber";
import { MaxUint256, NegativeOne, One, Zero } from "@ethersproject/constants";
import { Coder } from "./abstract-coder";
export class NumberCoder extends Coder {
constructor(size, signed, localName) {
const name = ((signed ? "int" : "uint") + (size * 8));
super(name, name, localName, false);
this.size = size;
this.signed = signed;
}
encode(writer, value) {
let v = BigNumber.from(value);
// Check bounds are safe for encoding
let maxUintValue = MaxUint256.mask(writer.wordSize * 8);
if (this.signed) {
let bounds = maxUintValue.mask(this.size * 8 - 1);
if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {
this._throwError("value out-of-bounds", value);
}
}
else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {
this._throwError("value out-of-bounds", value);
}
v = v.toTwos(this.size * 8).mask(this.size * 8);
if (this.signed) {
v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);
}
return writer.writeValue(v);
}
decode(reader) {
let value = reader.readValue().mask(this.size * 8);
if (this.signed) {
value = value.fromTwos(this.size * 8);
}
return reader.coerce(this.name, value);
}
}
-14
View File
@@ -1,14 +0,0 @@
"use strict";
import { toUtf8Bytes, toUtf8String } from "@ethersproject/strings";
import { DynamicBytesCoder } from "./bytes";
export class StringCoder extends DynamicBytesCoder {
constructor(localName) {
super("string", localName);
}
encode(writer, value) {
return super.encode(writer, toUtf8Bytes(value));
}
decode(reader) {
return toUtf8String(super.decode(reader));
}
}
-24
View File
@@ -1,24 +0,0 @@
"use strict";
import { Coder } from "./abstract-coder";
import { pack, unpack } from "./array";
export class TupleCoder extends Coder {
constructor(coders, localName) {
let dynamic = false;
const types = [];
coders.forEach((coder) => {
if (coder.dynamic) {
dynamic = true;
}
types.push(coder.type);
});
const type = ("tuple(" + types.join(",") + ")");
super("tuple", type, localName, dynamic);
this.coders = coders;
}
encode(writer, value) {
return pack(writer, this.coders, value);
}
decode(reader) {
return reader.coerce(this.name, unpack(reader, this.coders));
}
}
-780
View File
@@ -1,780 +0,0 @@
"use strict";
import { BigNumber } from "@ethersproject/bignumber";
import { defineReadOnly } from "@ethersproject/properties";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
;
const _constructorGuard = {};
let ModifiersBytes = { calldata: true, memory: true, storage: true };
let ModifiersNest = { calldata: true, memory: true };
function checkModifier(type, name) {
if (type === "bytes" || type === "string") {
if (ModifiersBytes[name]) {
return true;
}
}
else if (type === "address") {
if (name === "payable") {
return true;
}
}
else if (type.indexOf("[") >= 0 || type === "tuple") {
if (ModifiersNest[name]) {
return true;
}
}
if (ModifiersBytes[name] || name === "payable") {
logger.throwArgumentError("invalid modifier", "name", name);
}
return false;
}
// @TODO: Make sure that children of an indexed tuple are marked with a null indexed
function parseParamType(param, allowIndexed) {
let originalParam = param;
function throwError(i) {
logger.throwArgumentError(`unexpected character at position ${i}`, "param", param);
}
param = param.replace(/\s/g, " ");
function newNode(parent) {
let node = { type: "", name: "", parent: parent, state: { allowType: true } };
if (allowIndexed) {
node.indexed = false;
}
return node;
}
let parent = { type: "", name: "", state: { allowType: true } };
let node = parent;
for (let i = 0; i < param.length; i++) {
let c = param[i];
switch (c) {
case "(":
if (node.state.allowType && node.type === "") {
node.type = "tuple";
}
else if (!node.state.allowParams) {
throwError(i);
}
node.state.allowType = false;
node.type = verifyType(node.type);
node.components = [newNode(node)];
node = node.components[0];
break;
case ")":
delete node.state;
if (node.name === "indexed") {
if (!allowIndexed) {
throwError(i);
}
node.indexed = true;
node.name = "";
}
if (checkModifier(node.type, node.name)) {
node.name = "";
}
node.type = verifyType(node.type);
let child = node;
node = node.parent;
if (!node) {
throwError(i);
}
delete child.parent;
node.state.allowParams = false;
node.state.allowName = true;
node.state.allowArray = true;
break;
case ",":
delete node.state;
if (node.name === "indexed") {
if (!allowIndexed) {
throwError(i);
}
node.indexed = true;
node.name = "";
}
if (checkModifier(node.type, node.name)) {
node.name = "";
}
node.type = verifyType(node.type);
let sibling = newNode(node.parent);
//{ type: "", name: "", parent: node.parent, state: { allowType: true } };
node.parent.components.push(sibling);
delete node.parent;
node = sibling;
break;
// Hit a space...
case " ":
// If reading type, the type is done and may read a param or name
if (node.state.allowType) {
if (node.type !== "") {
node.type = verifyType(node.type);
delete node.state.allowType;
node.state.allowName = true;
node.state.allowParams = true;
}
}
// If reading name, the name is done
if (node.state.allowName) {
if (node.name !== "") {
if (node.name === "indexed") {
if (!allowIndexed) {
throwError(i);
}
if (node.indexed) {
throwError(i);
}
node.indexed = true;
node.name = "";
}
else if (checkModifier(node.type, node.name)) {
node.name = "";
}
else {
node.state.allowName = false;
}
}
}
break;
case "[":
if (!node.state.allowArray) {
throwError(i);
}
node.type += c;
node.state.allowArray = false;
node.state.allowName = false;
node.state.readArray = true;
break;
case "]":
if (!node.state.readArray) {
throwError(i);
}
node.type += c;
node.state.readArray = false;
node.state.allowArray = true;
node.state.allowName = true;
break;
default:
if (node.state.allowType) {
node.type += c;
node.state.allowParams = true;
node.state.allowArray = true;
}
else if (node.state.allowName) {
node.name += c;
delete node.state.allowArray;
}
else if (node.state.readArray) {
node.type += c;
}
else {
throwError(i);
}
}
}
if (node.parent) {
logger.throwArgumentError("unexpected eof", "param", param);
}
delete parent.state;
if (node.name === "indexed") {
if (!allowIndexed) {
throwError(originalParam.length - 7);
}
if (node.indexed) {
throwError(originalParam.length - 7);
}
node.indexed = true;
node.name = "";
}
else if (checkModifier(node.type, node.name)) {
node.name = "";
}
parent.type = verifyType(parent.type);
return parent;
}
function populate(object, params) {
for (let key in params) {
defineReadOnly(object, key, params[key]);
}
}
export const FormatTypes = Object.freeze({
// Bare formatting, as is needed for computing a sighash of an event or function
sighash: "sighash",
// Human-Readable with Minimal spacing and without names (compact human-readable)
minimal: "minimal",
// Human-Readble with nice spacing, including all names
full: "full",
// JSON-format a la Solidity
json: "json"
});
const paramTypeArray = new RegExp(/^(.*)\[([0-9]*)\]$/);
export class ParamType {
constructor(constructorGuard, params) {
if (constructorGuard !== _constructorGuard) {
logger.throwError("use fromString", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new ParamType()"
});
}
populate(this, params);
let match = this.type.match(paramTypeArray);
if (match) {
populate(this, {
arrayLength: parseInt(match[2] || "-1"),
arrayChildren: ParamType.fromObject({
type: match[1],
components: this.components
}),
baseType: "array"
});
}
else {
populate(this, {
arrayLength: null,
arrayChildren: null,
baseType: ((this.components != null) ? "tuple" : this.type)
});
}
this._isParamType = true;
Object.freeze(this);
}
// Format the parameter fragment
// - sighash: "(uint256,address)"
// - minimal: "tuple(uint256,address) indexed"
// - full: "tuple(uint256 foo, addres bar) indexed baz"
format(format) {
if (!format) {
format = FormatTypes.sighash;
}
if (!FormatTypes[format]) {
logger.throwArgumentError("invalid format type", "format", format);
}
if (format === FormatTypes.json) {
let result = {
type: ((this.baseType === "tuple") ? "tuple" : this.type),
name: (this.name || undefined)
};
if (typeof (this.indexed) === "boolean") {
result.indexed = this.indexed;
}
if (this.components) {
result.components = this.components.map((comp) => JSON.parse(comp.format(format)));
}
return JSON.stringify(result);
}
let result = "";
// Array
if (this.baseType === "array") {
result += this.arrayChildren.format(format);
result += "[" + (this.arrayLength < 0 ? "" : String(this.arrayLength)) + "]";
}
else {
if (this.baseType === "tuple") {
if (format !== FormatTypes.sighash) {
result += this.type;
}
result += "(" + this.components.map((comp) => comp.format(format)).join((format === FormatTypes.full) ? ", " : ",") + ")";
}
else {
result += this.type;
}
}
if (format !== FormatTypes.sighash) {
if (this.indexed === true) {
result += " indexed";
}
if (format === FormatTypes.full && this.name) {
result += " " + this.name;
}
}
return result;
}
static from(value, allowIndexed) {
if (typeof (value) === "string") {
return ParamType.fromString(value, allowIndexed);
}
return ParamType.fromObject(value);
}
static fromObject(value) {
if (ParamType.isParamType(value)) {
return value;
}
return new ParamType(_constructorGuard, {
name: (value.name || null),
type: verifyType(value.type),
indexed: ((value.indexed == null) ? null : !!value.indexed),
components: (value.components ? value.components.map(ParamType.fromObject) : null)
});
}
static fromString(value, allowIndexed) {
function ParamTypify(node) {
return ParamType.fromObject({
name: node.name,
type: node.type,
indexed: node.indexed,
components: node.components
});
}
return ParamTypify(parseParamType(value, !!allowIndexed));
}
static isParamType(value) {
return !!(value != null && value._isParamType);
}
}
;
function parseParams(value, allowIndex) {
return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));
}
export class Fragment {
constructor(constructorGuard, params) {
if (constructorGuard !== _constructorGuard) {
logger.throwError("use a static from method", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new Fragment()"
});
}
populate(this, params);
this._isFragment = true;
Object.freeze(this);
}
static from(value) {
if (Fragment.isFragment(value)) {
return value;
}
if (typeof (value) === "string") {
return Fragment.fromString(value);
}
return Fragment.fromObject(value);
}
static fromObject(value) {
if (Fragment.isFragment(value)) {
return value;
}
switch (value.type) {
case "function":
return FunctionFragment.fromObject(value);
case "event":
return EventFragment.fromObject(value);
case "constructor":
return ConstructorFragment.fromObject(value);
case "fallback":
case "receive":
// @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?
return null;
}
return logger.throwArgumentError("invalid fragment object", "value", value);
}
static fromString(value) {
// Make sure the "returns" is surrounded by a space and all whitespace is exactly one space
value = value.replace(/\s/g, " ");
value = value.replace(/\(/g, " (").replace(/\)/g, ") ").replace(/\s+/g, " ");
value = value.trim();
if (value.split(" ")[0] === "event") {
return EventFragment.fromString(value.substring(5).trim());
}
else if (value.split(" ")[0] === "function") {
return FunctionFragment.fromString(value.substring(8).trim());
}
else if (value.split("(")[0].trim() === "constructor") {
return ConstructorFragment.fromString(value.trim());
}
return logger.throwArgumentError("unsupported fragment", "value", value);
}
static isFragment(value) {
return !!(value && value._isFragment);
}
}
export class EventFragment extends Fragment {
format(format) {
if (!format) {
format = FormatTypes.sighash;
}
if (!FormatTypes[format]) {
logger.throwArgumentError("invalid format type", "format", format);
}
if (format === FormatTypes.json) {
return JSON.stringify({
type: "event",
anonymous: this.anonymous,
name: this.name,
inputs: this.inputs.map((input) => JSON.parse(input.format(format)))
});
}
let result = "";
if (format !== FormatTypes.sighash) {
result += "event ";
}
result += this.name + "(" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? ", " : ",") + ") ";
if (format !== FormatTypes.sighash) {
if (this.anonymous) {
result += "anonymous ";
}
}
return result.trim();
}
static from(value) {
if (typeof (value) === "string") {
return EventFragment.fromString(value);
}
return EventFragment.fromObject(value);
}
static fromObject(value) {
if (EventFragment.isEventFragment(value)) {
return value;
}
if (value.type !== "event") {
logger.throwArgumentError("invalid event object", "value", value);
}
const params = {
name: verifyIdentifier(value.name),
anonymous: value.anonymous,
inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),
type: "event"
};
return new EventFragment(_constructorGuard, params);
}
static fromString(value) {
let match = value.match(regexParen);
if (!match) {
logger.throwArgumentError("invalid event string", "value", value);
}
let anonymous = false;
match[3].split(" ").forEach((modifier) => {
switch (modifier.trim()) {
case "anonymous":
anonymous = true;
break;
case "":
break;
default:
logger.warn("unknown modifier: " + modifier);
}
});
return EventFragment.fromObject({
name: match[1].trim(),
anonymous: anonymous,
inputs: parseParams(match[2], true),
type: "event"
});
}
static isEventFragment(value) {
return (value && value._isFragment && value.type === "event");
}
}
function parseGas(value, params) {
params.gas = null;
let comps = value.split("@");
if (comps.length !== 1) {
if (comps.length > 2) {
logger.throwArgumentError("invalid human-readable ABI signature", "value", value);
}
if (!comps[1].match(/^[0-9]+$/)) {
logger.throwArgumentError("invalid human-readable ABI signature gas", "value", value);
}
params.gas = BigNumber.from(comps[1]);
return comps[0];
}
return value;
}
function parseModifiers(value, params) {
params.constant = false;
params.payable = false;
params.stateMutability = "nonpayable";
value.split(" ").forEach((modifier) => {
switch (modifier.trim()) {
case "constant":
params.constant = true;
break;
case "payable":
params.payable = true;
params.stateMutability = "payable";
break;
case "pure":
params.constant = true;
params.stateMutability = "pure";
break;
case "view":
params.constant = true;
params.stateMutability = "view";
break;
case "external":
case "public":
case "":
break;
default:
console.log("unknown modifier: " + modifier);
}
});
}
function verifyState(value) {
let result = {
constant: false,
payable: true,
stateMutability: "payable"
};
if (value.stateMutability != null) {
result.stateMutability = value.stateMutability;
// Set (and check things are consistent) the constant property
result.constant = (result.stateMutability === "view" || result.stateMutability === "pure");
if (value.constant != null) {
if ((!!value.constant) !== result.constant) {
logger.throwArgumentError("cannot have constant function with mutability " + result.stateMutability, "value", value);
}
}
// Set (and check things are consistent) the payable property
result.payable = (result.stateMutability === "payable");
if (value.payable != null) {
if ((!!value.payable) !== result.payable) {
logger.throwArgumentError("cannot have payable function with mutability " + result.stateMutability, "value", value);
}
}
}
else if (value.payable != null) {
result.payable = !!value.payable;
// If payable we can assume non-constant; otherwise we can't assume
if (value.constant == null && !result.payable && value.type !== "constructor") {
logger.throwArgumentError("unable to determine stateMutability", "value", value);
}
result.constant = !!value.constant;
if (result.constant) {
result.stateMutability = "view";
}
else {
result.stateMutability = (result.payable ? "payable" : "nonpayable");
}
if (result.payable && result.constant) {
logger.throwArgumentError("cannot have constant payable function", "value", value);
}
}
else if (value.constant != null) {
result.constant = !!value.constant;
result.payable = !result.constant;
result.stateMutability = (result.constant ? "view" : "payable");
}
else if (value.type !== "constructor") {
logger.throwArgumentError("unable to determine stateMutability", "value", value);
}
return result;
}
export class ConstructorFragment extends Fragment {
format(format) {
if (!format) {
format = FormatTypes.sighash;
}
if (!FormatTypes[format]) {
logger.throwArgumentError("invalid format type", "format", format);
}
if (format === FormatTypes.json) {
return JSON.stringify({
type: "constructor",
stateMutability: ((this.stateMutability !== "nonpayable") ? this.stateMutability : undefined),
payble: this.payable,
gas: (this.gas ? this.gas.toNumber() : undefined),
inputs: this.inputs.map((input) => JSON.parse(input.format(format)))
});
}
if (format === FormatTypes.sighash) {
logger.throwError("cannot format a constructor for sighash", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "format(sighash)"
});
}
let result = "constructor(" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? ", " : ",") + ") ";
if (this.stateMutability && this.stateMutability !== "nonpayable") {
result += this.stateMutability + " ";
}
return result.trim();
}
static from(value) {
if (typeof (value) === "string") {
return ConstructorFragment.fromString(value);
}
return ConstructorFragment.fromObject(value);
}
static fromObject(value) {
if (ConstructorFragment.isConstructorFragment(value)) {
return value;
}
if (value.type !== "constructor") {
logger.throwArgumentError("invalid constructor object", "value", value);
}
let state = verifyState(value);
if (state.constant) {
logger.throwArgumentError("constructor cannot be constant", "value", value);
}
const params = {
name: null,
type: value.type,
inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),
payable: state.payable,
stateMutability: state.stateMutability,
gas: (value.gas ? BigNumber.from(value.gas) : null)
};
return new ConstructorFragment(_constructorGuard, params);
}
static fromString(value) {
let params = { type: "constructor" };
value = parseGas(value, params);
let parens = value.match(regexParen);
if (!parens || parens[1].trim() !== "constructor") {
logger.throwArgumentError("invalid constructor string", "value", value);
}
params.inputs = parseParams(parens[2].trim(), false);
parseModifiers(parens[3].trim(), params);
return ConstructorFragment.fromObject(params);
}
static isConstructorFragment(value) {
return (value && value._isFragment && value.type === "constructor");
}
}
export class FunctionFragment extends ConstructorFragment {
format(format) {
if (!format) {
format = FormatTypes.sighash;
}
if (!FormatTypes[format]) {
logger.throwArgumentError("invalid format type", "format", format);
}
if (format === FormatTypes.json) {
return JSON.stringify({
type: "function",
name: this.name,
constant: this.constant,
stateMutability: ((this.stateMutability !== "nonpayable") ? this.stateMutability : undefined),
payble: this.payable,
gas: (this.gas ? this.gas.toNumber() : undefined),
inputs: this.inputs.map((input) => JSON.parse(input.format(format))),
ouputs: this.outputs.map((output) => JSON.parse(output.format(format))),
});
}
let result = "";
if (format !== FormatTypes.sighash) {
result += "function ";
}
result += this.name + "(" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? ", " : ",") + ") ";
if (format !== FormatTypes.sighash) {
if (this.stateMutability) {
if (this.stateMutability !== "nonpayable") {
result += (this.stateMutability + " ");
}
}
else if (this.constant) {
result += "view ";
}
if (this.outputs && this.outputs.length) {
result += "returns (" + this.outputs.map((output) => output.format(format)).join(", ") + ") ";
}
if (this.gas != null) {
result += "@" + this.gas.toString() + " ";
}
}
return result.trim();
}
static from(value) {
if (typeof (value) === "string") {
return FunctionFragment.fromString(value);
}
return FunctionFragment.fromObject(value);
}
static fromObject(value) {
if (FunctionFragment.isFunctionFragment(value)) {
return value;
}
if (value.type !== "function") {
logger.throwArgumentError("invalid function object", "value", value);
}
let state = verifyState(value);
const params = {
type: value.type,
name: verifyIdentifier(value.name),
constant: state.constant,
inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),
outputs: (value.outputs ? value.outputs.map(ParamType.fromObject) : []),
payable: state.payable,
stateMutability: state.stateMutability,
gas: (value.gas ? BigNumber.from(value.gas) : null)
};
return new FunctionFragment(_constructorGuard, params);
}
static fromString(value) {
let params = { type: "function" };
value = parseGas(value, params);
let comps = value.split(" returns ");
if (comps.length > 2) {
logger.throwArgumentError("invalid function string", "value", value);
}
let parens = comps[0].match(regexParen);
if (!parens) {
logger.throwArgumentError("invalid function signature", "value", value);
}
params.name = parens[1].trim();
if (params.name) {
verifyIdentifier(params.name);
}
params.inputs = parseParams(parens[2], false);
parseModifiers(parens[3].trim(), params);
// We have outputs
if (comps.length > 1) {
let returns = comps[1].match(regexParen);
if (returns[1].trim() != "" || returns[3].trim() != "") {
logger.throwArgumentError("unexpected tokens", "value", value);
}
params.outputs = parseParams(returns[2], false);
}
else {
params.outputs = [];
}
return FunctionFragment.fromObject(params);
}
static isFunctionFragment(value) {
return (value && value._isFragment && value.type === "function");
}
}
//export class ErrorFragment extends Fragment {
//}
//export class StructFragment extends Fragment {
//}
function verifyType(type) {
// These need to be transformed to their full description
if (type.match(/^uint($|[^1-9])/)) {
type = "uint256" + type.substring(4);
}
else if (type.match(/^int($|[^1-9])/)) {
type = "int256" + type.substring(3);
}
// @TODO: more verification
return type;
}
const regexIdentifier = new RegExp("^[A-Za-z_][A-Za-z0-9_]*$");
function verifyIdentifier(value) {
if (!value || !value.match(regexIdentifier)) {
logger.throwArgumentError(`invalid identifier "${value}"`, "value", value);
}
return value;
}
const regexParen = new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");
function splitNesting(value) {
value = value.trim();
let result = [];
let accum = "";
let depth = 0;
for (let offset = 0; offset < value.length; offset++) {
let c = value[offset];
if (c === "," && depth === 0) {
result.push(accum);
accum = "";
}
else {
accum += c;
if (c === "(") {
depth++;
}
else if (c === ")") {
depth--;
if (depth === -1) {
logger.throwArgumentError("unbalanced parenthesis", "value", value);
}
}
}
}
if (accum) {
result.push(accum);
}
return result;
}
-5
View File
@@ -1,5 +0,0 @@
"use strict";
import { ConstructorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, ParamType } from "./fragments";
import { AbiCoder, defaultAbiCoder } from "./abi-coder";
import { checkResultErrors, Indexed, Interface, LogDescription, TransactionDescription } from "./interface";
export { ConstructorFragment, EventFragment, Fragment, FunctionFragment, ParamType, FormatTypes, AbiCoder, defaultAbiCoder, Interface, Indexed, checkResultErrors, LogDescription, TransactionDescription };
-492
View File
@@ -1,492 +0,0 @@
"use strict";
import { getAddress } from "@ethersproject/address";
import { BigNumber } from "@ethersproject/bignumber";
import { arrayify, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from "@ethersproject/bytes";
import { id } from "@ethersproject/hash";
import { keccak256 } from "@ethersproject/keccak256";
import { defineReadOnly, Description, getStatic } from "@ethersproject/properties";
import { defaultAbiCoder } from "./abi-coder";
import { checkResultErrors } from "./coders/abstract-coder";
import { ConstructorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, ParamType } from "./fragments";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
export { checkResultErrors };
export class LogDescription extends Description {
}
export class TransactionDescription extends Description {
}
export class Indexed extends Description {
static isIndexed(value) {
return !!(value && value._isIndexed);
}
}
function wrapAccessError(property, error) {
const wrap = new Error(`deferred error during ABI decoding triggered accessing ${property}`);
wrap.error = error;
return wrap;
}
function checkNames(fragment, type, params) {
params.reduce((accum, param) => {
if (param.name) {
if (accum[param.name]) {
logger.throwArgumentError(`duplicate ${type} parameter ${JSON.stringify(param.name)} in ${fragment.format("full")}`, "fragment", fragment);
}
accum[param.name] = true;
}
return accum;
}, {});
}
export class Interface {
constructor(fragments) {
logger.checkNew(new.target, Interface);
let abi = [];
if (typeof (fragments) === "string") {
abi = JSON.parse(fragments);
}
else {
abi = fragments;
}
defineReadOnly(this, "fragments", abi.map((fragment) => {
return Fragment.from(fragment);
}).filter((fragment) => (fragment != null)));
defineReadOnly(this, "_abiCoder", getStatic((new.target), "getAbiCoder")());
defineReadOnly(this, "functions", {});
defineReadOnly(this, "errors", {});
defineReadOnly(this, "events", {});
defineReadOnly(this, "structs", {});
// Add all fragments by their signature
this.fragments.forEach((fragment) => {
let bucket = null;
switch (fragment.type) {
case "constructor":
if (this.deploy) {
logger.warn("duplicate definition - constructor");
return;
}
checkNames(fragment, "input", fragment.inputs);
defineReadOnly(this, "deploy", fragment);
return;
case "function":
checkNames(fragment, "input", fragment.inputs);
checkNames(fragment, "output", fragment.outputs);
bucket = this.functions;
break;
case "event":
checkNames(fragment, "input", fragment.inputs);
bucket = this.events;
break;
default:
return;
}
let signature = fragment.format();
if (bucket[signature]) {
logger.warn("duplicate definition - " + signature);
return;
}
bucket[signature] = fragment;
});
// If we do not have a constructor add a default
if (!this.deploy) {
defineReadOnly(this, "deploy", ConstructorFragment.from({
payable: false,
type: "constructor"
}));
}
defineReadOnly(this, "_isInterface", true);
}
format(format) {
if (!format) {
format = FormatTypes.full;
}
if (format === FormatTypes.sighash) {
logger.throwArgumentError("interface does not support formatting sighash", "format", format);
}
const abi = this.fragments.map((fragment) => fragment.format(format));
// We need to re-bundle the JSON fragments a bit
if (format === FormatTypes.json) {
return JSON.stringify(abi.map((j) => JSON.parse(j)));
}
return abi;
}
// Sub-classes can override these to handle other blockchains
static getAbiCoder() {
return defaultAbiCoder;
}
static getAddress(address) {
return getAddress(address);
}
static getSighash(functionFragment) {
return hexDataSlice(id(functionFragment.format()), 0, 4);
}
static getEventTopic(eventFragment) {
return id(eventFragment.format());
}
// Find a function definition by any means necessary (unless it is ambiguous)
getFunction(nameOrSignatureOrSighash) {
if (isHexString(nameOrSignatureOrSighash)) {
for (const name in this.functions) {
if (nameOrSignatureOrSighash === this.getSighash(name)) {
return this.functions[name];
}
}
logger.throwArgumentError("no matching function", "sighash", nameOrSignatureOrSighash);
}
// It is a bare name, look up the function (will return null if ambiguous)
if (nameOrSignatureOrSighash.indexOf("(") === -1) {
const name = nameOrSignatureOrSighash.trim();
const matching = Object.keys(this.functions).filter((f) => (f.split("(" /* fix:) */)[0] === name));
if (matching.length === 0) {
logger.throwArgumentError("no matching function", "name", name);
}
else if (matching.length > 1) {
logger.throwArgumentError("multiple matching functions", "name", name);
}
return this.functions[matching[0]];
}
// Normlize the signature and lookup the function
const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
if (!result) {
logger.throwArgumentError("no matching function", "signature", nameOrSignatureOrSighash);
}
return result;
}
// Find an event definition by any means necessary (unless it is ambiguous)
getEvent(nameOrSignatureOrTopic) {
if (isHexString(nameOrSignatureOrTopic)) {
const topichash = nameOrSignatureOrTopic.toLowerCase();
for (const name in this.events) {
if (topichash === this.getEventTopic(name)) {
return this.events[name];
}
}
logger.throwArgumentError("no matching event", "topichash", topichash);
}
// It is a bare name, look up the function (will return null if ambiguous)
if (nameOrSignatureOrTopic.indexOf("(") === -1) {
const name = nameOrSignatureOrTopic.trim();
const matching = Object.keys(this.events).filter((f) => (f.split("(" /* fix:) */)[0] === name));
if (matching.length === 0) {
logger.throwArgumentError("no matching event", "name", name);
}
else if (matching.length > 1) {
logger.throwArgumentError("multiple matching events", "name", name);
}
return this.events[matching[0]];
}
// Normlize the signature and lookup the function
const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];
if (!result) {
logger.throwArgumentError("no matching event", "signature", nameOrSignatureOrTopic);
}
return result;
}
// Get the sighash (the bytes4 selector) used by Solidity to identify a function
getSighash(functionFragment) {
if (typeof (functionFragment) === "string") {
functionFragment = this.getFunction(functionFragment);
}
return getStatic(this.constructor, "getSighash")(functionFragment);
}
// Get the topic (the bytes32 hash) used by Solidity to identify an event
getEventTopic(eventFragment) {
if (typeof (eventFragment) === "string") {
eventFragment = this.getEvent(eventFragment);
}
return getStatic(this.constructor, "getEventTopic")(eventFragment);
}
_decodeParams(params, data) {
return this._abiCoder.decode(params, data);
}
_encodeParams(params, values) {
return this._abiCoder.encode(params, values);
}
encodeDeploy(values) {
return this._encodeParams(this.deploy.inputs, values || []);
}
// Decode the data for a function call (e.g. tx.data)
decodeFunctionData(functionFragment, data) {
if (typeof (functionFragment) === "string") {
functionFragment = this.getFunction(functionFragment);
}
const bytes = arrayify(data);
if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {
logger.throwArgumentError(`data signature does not match function ${functionFragment.name}.`, "data", hexlify(bytes));
}
return this._decodeParams(functionFragment.inputs, bytes.slice(4));
}
// Encode the data for a function call (e.g. tx.data)
encodeFunctionData(functionFragment, values) {
if (typeof (functionFragment) === "string") {
functionFragment = this.getFunction(functionFragment);
}
return hexlify(concat([
this.getSighash(functionFragment),
this._encodeParams(functionFragment.inputs, values || [])
]));
}
// Decode the result from a function call (e.g. from eth_call)
decodeFunctionResult(functionFragment, data) {
if (typeof (functionFragment) === "string") {
functionFragment = this.getFunction(functionFragment);
}
let bytes = arrayify(data);
let reason = null;
let errorSignature = null;
switch (bytes.length % this._abiCoder._getWordSize()) {
case 0:
try {
return this._abiCoder.decode(functionFragment.outputs, bytes);
}
catch (error) { }
break;
case 4:
if (hexlify(bytes.slice(0, 4)) === "0x08c379a0") {
errorSignature = "Error(string)";
reason = this._abiCoder.decode(["string"], bytes.slice(4))[0];
}
break;
}
return logger.throwError("call revert exception", Logger.errors.CALL_EXCEPTION, {
method: functionFragment.format(),
errorSignature: errorSignature,
errorArgs: [reason],
reason: reason
});
}
// Encode the result for a function call (e.g. for eth_call)
encodeFunctionResult(functionFragment, values) {
if (typeof (functionFragment) === "string") {
functionFragment = this.getFunction(functionFragment);
}
return hexlify(this._abiCoder.encode(functionFragment.outputs, values || []));
}
// Create the filter for the event with search criteria (e.g. for eth_filterLog)
encodeFilterTopics(eventFragment, values) {
if (typeof (eventFragment) === "string") {
eventFragment = this.getEvent(eventFragment);
}
if (values.length > eventFragment.inputs.length) {
logger.throwError("too many arguments for " + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {
argument: "values",
value: values
});
}
let topics = [];
if (!eventFragment.anonymous) {
topics.push(this.getEventTopic(eventFragment));
}
const encodeTopic = (param, value) => {
if (param.type === "string") {
return id(value);
}
else if (param.type === "bytes") {
return keccak256(hexlify(value));
}
// Check addresses are valid
if (param.type === "address") {
this._abiCoder.encode(["address"], [value]);
}
return hexZeroPad(hexlify(value), 32);
};
values.forEach((value, index) => {
let param = eventFragment.inputs[index];
if (!param.indexed) {
if (value != null) {
logger.throwArgumentError("cannot filter non-indexed parameters; must be null", ("contract." + param.name), value);
}
return;
}
if (value == null) {
topics.push(null);
}
else if (param.baseType === "array" || param.baseType === "tuple") {
logger.throwArgumentError("filtering with tuples or arrays not supported", ("contract." + param.name), value);
}
else if (Array.isArray(value)) {
topics.push(value.map((value) => encodeTopic(param, value)));
}
else {
topics.push(encodeTopic(param, value));
}
});
// Trim off trailing nulls
while (topics.length && topics[topics.length - 1] === null) {
topics.pop();
}
return topics;
}
encodeEventLog(eventFragment, values) {
if (typeof (eventFragment) === "string") {
eventFragment = this.getEvent(eventFragment);
}
const topics = [];
const dataTypes = [];
const dataValues = [];
if (!eventFragment.anonymous) {
topics.push(this.getEventTopic(eventFragment));
}
if (values.length !== eventFragment.inputs.length) {
logger.throwArgumentError("event arguments/values mismatch", "values", values);
}
eventFragment.inputs.forEach((param, index) => {
const value = values[index];
if (param.indexed) {
if (param.type === "string") {
topics.push(id(value));
}
else if (param.type === "bytes") {
topics.push(keccak256(value));
}
else if (param.baseType === "tuple" || param.baseType === "array") {
// @TOOD
throw new Error("not implemented");
}
else {
topics.push(this._abiCoder.encode([param.type], [value]));
}
}
else {
dataTypes.push(param);
dataValues.push(value);
}
});
return {
data: this._abiCoder.encode(dataTypes, dataValues),
topics: topics
};
}
// Decode a filter for the event and the search criteria
decodeEventLog(eventFragment, data, topics) {
if (typeof (eventFragment) === "string") {
eventFragment = this.getEvent(eventFragment);
}
if (topics != null && !eventFragment.anonymous) {
let topicHash = this.getEventTopic(eventFragment);
if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {
logger.throwError("fragment/topic mismatch", Logger.errors.INVALID_ARGUMENT, { argument: "topics[0]", expected: topicHash, value: topics[0] });
}
topics = topics.slice(1);
}
let indexed = [];
let nonIndexed = [];
let dynamic = [];
eventFragment.inputs.forEach((param, index) => {
if (param.indexed) {
if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") {
indexed.push(ParamType.fromObject({ type: "bytes32", name: param.name }));
dynamic.push(true);
}
else {
indexed.push(param);
dynamic.push(false);
}
}
else {
nonIndexed.push(param);
dynamic.push(false);
}
});
let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)) : null;
let resultNonIndexed = this._abiCoder.decode(nonIndexed, data);
let result = [];
let nonIndexedIndex = 0, indexedIndex = 0;
eventFragment.inputs.forEach((param, index) => {
if (param.indexed) {
if (resultIndexed == null) {
result[index] = new Indexed({ _isIndexed: true, hash: null });
}
else if (dynamic[index]) {
result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });
}
else {
try {
result[index] = resultIndexed[indexedIndex++];
}
catch (error) {
result[index] = error;
}
}
}
else {
try {
result[index] = resultNonIndexed[nonIndexedIndex++];
}
catch (error) {
result[index] = error;
}
}
// Add the keyword argument if named and safe
if (param.name && result[param.name] == null) {
const value = result[index];
// Make error named values throw on access
if (value instanceof Error) {
Object.defineProperty(result, param.name, {
get: () => { throw wrapAccessError(`property ${JSON.stringify(param.name)}`, value); }
});
}
else {
result[param.name] = value;
}
}
});
// Make all error indexed values throw on access
for (let i = 0; i < result.length; i++) {
const value = result[i];
if (value instanceof Error) {
Object.defineProperty(result, i, {
get: () => { throw wrapAccessError(`index ${i}`, value); }
});
}
}
return Object.freeze(result);
}
// Given a transaction, find the matching function fragment (if any) and
// determine all its properties and call parameters
parseTransaction(tx) {
let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase());
if (!fragment) {
return null;
}
return new TransactionDescription({
args: this._abiCoder.decode(fragment.inputs, "0x" + tx.data.substring(10)),
functionFragment: fragment,
name: fragment.name,
signature: fragment.format(),
sighash: this.getSighash(fragment),
value: BigNumber.from(tx.value || "0"),
});
}
// Given an event log, find the matching event fragment (if any) and
// determine all its properties and values
parseLog(log) {
let fragment = this.getEvent(log.topics[0]);
if (!fragment || fragment.anonymous) {
return null;
}
// @TODO: If anonymous, and the only method, and the input count matches, should we parse?
// Probably not, because just because it is the only event in the ABI does
// not mean we have the full ABI; maybe jsut a fragment?
return new LogDescription({
eventFragment: fragment,
name: fragment.name,
signature: fragment.format(),
topic: this.getEventTopic(fragment),
args: this.decodeEventLog(fragment, log.data, log.topics)
});
}
/*
static from(value: Array<Fragment | string | JsonAbi> | string | Interface) {
if (Interface.isInterface(value)) {
return value;
}
if (typeof(value) === "string") {
return new Interface(JSON.parse(value));
}
return new Interface(value);
}
*/
static isInterface(value) {
return !!(value && value._isInterface);
}
}
-3
View File
@@ -1,3 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "abi/5.0.0-beta.153";
-98
View File
@@ -1,98 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI
var bytes_1 = require("@ethersproject/bytes");
var properties_1 = require("@ethersproject/properties");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
var abstract_coder_1 = require("./coders/abstract-coder");
var address_1 = require("./coders/address");
var array_1 = require("./coders/array");
var boolean_1 = require("./coders/boolean");
var bytes_2 = require("./coders/bytes");
var fixed_bytes_1 = require("./coders/fixed-bytes");
var null_1 = require("./coders/null");
var number_1 = require("./coders/number");
var string_1 = require("./coders/string");
var tuple_1 = require("./coders/tuple");
var fragments_1 = require("./fragments");
var paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
var paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
var AbiCoder = /** @class */ (function () {
function AbiCoder(coerceFunc) {
var _newTarget = this.constructor;
logger.checkNew(_newTarget, AbiCoder);
properties_1.defineReadOnly(this, "coerceFunc", coerceFunc || null);
}
AbiCoder.prototype._getCoder = function (param) {
var _this = this;
switch (param.baseType) {
case "address":
return new address_1.AddressCoder(param.name);
case "bool":
return new boolean_1.BooleanCoder(param.name);
case "string":
return new string_1.StringCoder(param.name);
case "bytes":
return new bytes_2.BytesCoder(param.name);
case "array":
return new array_1.ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);
case "tuple":
return new tuple_1.TupleCoder((param.components || []).map(function (component) {
return _this._getCoder(component);
}), param.name);
case "":
return new null_1.NullCoder(param.name);
}
// u?int[0-9]*
var match = param.type.match(paramTypeNumber);
if (match) {
var size = parseInt(match[2] || "256");
if (size === 0 || size > 256 || (size % 8) !== 0) {
logger.throwArgumentError("invalid " + match[1] + " bit length", "param", param);
}
return new number_1.NumberCoder(size / 8, (match[1] === "int"), param.name);
}
// bytes[0-9]+
match = param.type.match(paramTypeBytes);
if (match) {
var size = parseInt(match[1]);
if (size === 0 || size > 32) {
logger.throwArgumentError("invalid bytes length", "param", param);
}
return new fixed_bytes_1.FixedBytesCoder(size, param.name);
}
return logger.throwArgumentError("invalid type", "type", param.type);
};
AbiCoder.prototype._getWordSize = function () { return 32; };
AbiCoder.prototype._getReader = function (data) {
return new abstract_coder_1.Reader(data, this._getWordSize(), this.coerceFunc);
};
AbiCoder.prototype._getWriter = function () {
return new abstract_coder_1.Writer(this._getWordSize());
};
AbiCoder.prototype.encode = function (types, values) {
var _this = this;
if (types.length !== values.length) {
logger.throwError("types/values length mismatch", logger_1.Logger.errors.INVALID_ARGUMENT, {
count: { types: types.length, values: values.length },
value: { types: types, values: values }
});
}
var coders = types.map(function (type) { return _this._getCoder(fragments_1.ParamType.from(type)); });
var coder = (new tuple_1.TupleCoder(coders, "_"));
var writer = this._getWriter();
coder.encode(writer, values);
return writer.data;
};
AbiCoder.prototype.decode = function (types, data) {
var _this = this;
var coders = types.map(function (type) { return _this._getCoder(fragments_1.ParamType.from(type)); });
var coder = new tuple_1.TupleCoder(coders, "_");
return coder.decode(this._getReader(bytes_1.arrayify(data)));
};
return AbiCoder;
}());
exports.AbiCoder = AbiCoder;
exports.defaultAbiCoder = new AbiCoder();
-156
View File
@@ -1,156 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var bytes_1 = require("@ethersproject/bytes");
var bignumber_1 = require("@ethersproject/bignumber");
var properties_1 = require("@ethersproject/properties");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("../_version");
var logger = new logger_1.Logger(_version_1.version);
function checkResultErrors(result) {
// Find the first error (if any)
var errors = [];
var checkErrors = function (path, object) {
if (!Array.isArray(object)) {
return;
}
for (var key in object) {
var childPath = path.slice();
childPath.push(key);
try {
checkErrors(childPath, object[key]);
}
catch (error) {
errors.push({ path: childPath, error: error });
}
}
};
checkErrors([], result);
return errors;
}
exports.checkResultErrors = checkResultErrors;
var Coder = /** @class */ (function () {
function Coder(name, type, localName, dynamic) {
// @TODO: defineReadOnly these
this.name = name;
this.type = type;
this.localName = localName;
this.dynamic = dynamic;
}
Coder.prototype._throwError = function (message, value) {
logger.throwArgumentError(message, this.localName, value);
};
return Coder;
}());
exports.Coder = Coder;
var Writer = /** @class */ (function () {
function Writer(wordSize) {
properties_1.defineReadOnly(this, "wordSize", wordSize || 32);
this._data = bytes_1.arrayify([]);
this._padding = new Uint8Array(wordSize);
}
Object.defineProperty(Writer.prototype, "data", {
get: function () { return bytes_1.hexlify(this._data); },
enumerable: true,
configurable: true
});
Object.defineProperty(Writer.prototype, "length", {
get: function () { return this._data.length; },
enumerable: true,
configurable: true
});
Writer.prototype._writeData = function (data) {
this._data = bytes_1.concat([this._data, data]);
return data.length;
};
// Arrayish items; padded on the right to wordSize
Writer.prototype.writeBytes = function (value) {
var bytes = bytes_1.arrayify(value);
if (bytes.length % this.wordSize) {
bytes = bytes_1.concat([bytes, this._padding.slice(bytes.length % this.wordSize)]);
}
return this._writeData(bytes);
};
Writer.prototype._getValue = function (value) {
var bytes = bytes_1.arrayify(bignumber_1.BigNumber.from(value));
if (bytes.length > this.wordSize) {
logger.throwError("value out-of-bounds", logger_1.Logger.errors.BUFFER_OVERRUN, {
length: this.wordSize,
offset: bytes.length
});
}
if (bytes.length % this.wordSize) {
bytes = bytes_1.concat([this._padding.slice(bytes.length % this.wordSize), bytes]);
}
return bytes;
};
// BigNumberish items; padded on the left to wordSize
Writer.prototype.writeValue = function (value) {
return this._writeData(this._getValue(value));
};
Writer.prototype.writeUpdatableValue = function () {
var _this = this;
var offset = this.length;
this.writeValue(0);
return function (value) {
_this._data.set(_this._getValue(value), offset);
};
};
return Writer;
}());
exports.Writer = Writer;
var Reader = /** @class */ (function () {
function Reader(data, wordSize, coerceFunc) {
properties_1.defineReadOnly(this, "_data", bytes_1.arrayify(data));
properties_1.defineReadOnly(this, "wordSize", wordSize || 32);
properties_1.defineReadOnly(this, "_coerceFunc", coerceFunc);
this._offset = 0;
}
Object.defineProperty(Reader.prototype, "data", {
get: function () { return bytes_1.hexlify(this._data); },
enumerable: true,
configurable: true
});
Object.defineProperty(Reader.prototype, "consumed", {
get: function () { return this._offset; },
enumerable: true,
configurable: true
});
// The default Coerce function
Reader.coerce = function (name, value) {
var match = name.match("^u?int([0-9]+)$");
if (match && parseInt(match[1]) <= 48) {
value = value.toNumber();
}
return value;
};
Reader.prototype.coerce = function (name, value) {
if (this._coerceFunc) {
return this._coerceFunc(name, value);
}
return Reader.coerce(name, value);
};
Reader.prototype._peekBytes = function (offset, length) {
var alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;
if (this._offset + alignedLength > this._data.length) {
logger.throwError("data out-of-bounds", logger_1.Logger.errors.BUFFER_OVERRUN, {
length: this._data.length,
offset: this._offset + alignedLength
});
}
return this._data.slice(this._offset, this._offset + alignedLength);
};
Reader.prototype.subReader = function (offset) {
return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc);
};
Reader.prototype.readBytes = function (length) {
var bytes = this._peekBytes(0, length);
this._offset += bytes.length;
// @TODO: Make sure the length..end bytes are all 0?
return bytes.slice(0, length);
};
Reader.prototype.readValue = function () {
return bignumber_1.BigNumber.from(this.readBytes(this.wordSize));
};
return Reader;
}());
exports.Reader = Reader;
-38
View File
@@ -1,38 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var address_1 = require("@ethersproject/address");
var bytes_1 = require("@ethersproject/bytes");
var abstract_coder_1 = require("./abstract-coder");
var AddressCoder = /** @class */ (function (_super) {
__extends(AddressCoder, _super);
function AddressCoder(localName) {
return _super.call(this, "address", "address", localName, false) || this;
}
AddressCoder.prototype.encode = function (writer, value) {
try {
address_1.getAddress(value);
}
catch (error) {
this._throwError(error.message, value);
}
return writer.writeValue(value);
};
AddressCoder.prototype.decode = function (reader) {
return address_1.getAddress(bytes_1.hexZeroPad(reader.readValue().toHexString(), 20));
};
return AddressCoder;
}(abstract_coder_1.Coder));
exports.AddressCoder = AddressCoder;
-33
View File
@@ -1,33 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var abstract_coder_1 = require("./abstract-coder");
// Clones the functionality of an existing Coder, but without a localName
var AnonymousCoder = /** @class */ (function (_super) {
__extends(AnonymousCoder, _super);
function AnonymousCoder(coder) {
var _this = _super.call(this, coder.name, coder.type, undefined, coder.dynamic) || this;
_this.coder = coder;
return _this;
}
AnonymousCoder.prototype.encode = function (writer, value) {
return this.coder.encode(writer, value);
};
AnonymousCoder.prototype.decode = function (reader) {
return this.coder.decode(reader);
};
return AnonymousCoder;
}(abstract_coder_1.Coder));
exports.AnonymousCoder = AnonymousCoder;
-189
View File
@@ -1,189 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("../_version");
var logger = new logger_1.Logger(_version_1.version);
var abstract_coder_1 = require("./abstract-coder");
var anonymous_1 = require("./anonymous");
function pack(writer, coders, values) {
if (Array.isArray(values)) {
// do nothing
}
else if (values && typeof (values) === "object") {
var arrayValues_1 = [];
coders.forEach(function (coder) {
arrayValues_1.push(values[coder.localName]);
});
values = arrayValues_1;
}
else {
logger.throwArgumentError("invalid tuple value", "tuple", values);
}
if (coders.length !== values.length) {
logger.throwArgumentError("types/value length mismatch", "tuple", values);
}
var staticWriter = new abstract_coder_1.Writer(writer.wordSize);
var dynamicWriter = new abstract_coder_1.Writer(writer.wordSize);
var updateFuncs = [];
coders.forEach(function (coder, index) {
var value = values[index];
if (coder.dynamic) {
// Get current dynamic offset (for the future pointer)
var dynamicOffset_1 = dynamicWriter.length;
// Encode the dynamic value into the dynamicWriter
coder.encode(dynamicWriter, value);
// Prepare to populate the correct offset once we are done
var updateFunc_1 = staticWriter.writeUpdatableValue();
updateFuncs.push(function (baseOffset) {
updateFunc_1(baseOffset + dynamicOffset_1);
});
}
else {
coder.encode(staticWriter, value);
}
});
// Backfill all the dynamic offsets, now that we know the static length
updateFuncs.forEach(function (func) { func(staticWriter.length); });
var length = writer.writeBytes(staticWriter.data);
length += writer.writeBytes(dynamicWriter.data);
return length;
}
exports.pack = pack;
function unpack(reader, coders) {
var values = [];
// A reader anchored to this base
var baseReader = reader.subReader(0);
// The amount of dynamic data read; to consume later to synchronize
var dynamicLength = 0;
coders.forEach(function (coder) {
var value = null;
if (coder.dynamic) {
var offset = reader.readValue();
var offsetReader = baseReader.subReader(offset.toNumber());
try {
value = coder.decode(offsetReader);
}
catch (error) {
// Cannot recover from this
if (error.code === logger_1.Logger.errors.BUFFER_OVERRUN) {
throw error;
}
value = error;
value.baseType = coder.name;
value.name = coder.localName;
value.type = coder.type;
}
dynamicLength += offsetReader.consumed;
}
else {
try {
value = coder.decode(reader);
}
catch (error) {
// Cannot recover from this
if (error.code === logger_1.Logger.errors.BUFFER_OVERRUN) {
throw error;
}
value = error;
value.baseType = coder.name;
value.name = coder.localName;
value.type = coder.type;
}
}
if (value != undefined) {
values.push(value);
}
});
// @TODO: get rid of this an see if it still works?
// Consume the dynamic components in the main reader
reader.readBytes(dynamicLength);
// Add any named parameters (i.e. tuples)
coders.forEach(function (coder, index) {
var name = coder.localName;
if (!name) {
return;
}
if (name === "length") {
name = "_length";
}
if (values[name] != null) {
return;
}
var value = values[index];
if (value instanceof Error) {
Object.defineProperty(values, name, {
get: function () { throw value; }
});
}
else {
values[name] = value;
}
});
var _loop_1 = function (i) {
var value = values[i];
if (value instanceof Error) {
Object.defineProperty(values, i, {
get: function () { throw value; }
});
}
};
for (var i = 0; i < values.length; i++) {
_loop_1(i);
}
return Object.freeze(values);
}
exports.unpack = unpack;
var ArrayCoder = /** @class */ (function (_super) {
__extends(ArrayCoder, _super);
function ArrayCoder(coder, length, localName) {
var _this = this;
var type = (coder.type + "[" + (length >= 0 ? length : "") + "]");
var dynamic = (length === -1 || coder.dynamic);
_this = _super.call(this, "array", type, localName, dynamic) || this;
_this.coder = coder;
_this.length = length;
return _this;
}
ArrayCoder.prototype.encode = function (writer, value) {
if (!Array.isArray(value)) {
this._throwError("expected array value", value);
}
var count = this.length;
if (count === -1) {
count = value.length;
writer.writeValue(value.length);
}
logger.checkArgumentCount(count, value.length, "coder array" + (this.localName ? (" " + this.localName) : ""));
var coders = [];
for (var i = 0; i < value.length; i++) {
coders.push(this.coder);
}
return pack(writer, coders, value);
};
ArrayCoder.prototype.decode = function (reader) {
var count = this.length;
if (count === -1) {
count = reader.readValue().toNumber();
}
var coders = [];
for (var i = 0; i < count; i++) {
coders.push(new anonymous_1.AnonymousCoder(this.coder));
}
return reader.coerce(this.name, unpack(reader, coders));
};
return ArrayCoder;
}(abstract_coder_1.Coder));
exports.ArrayCoder = ArrayCoder;
-30
View File
@@ -1,30 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var abstract_coder_1 = require("./abstract-coder");
var BooleanCoder = /** @class */ (function (_super) {
__extends(BooleanCoder, _super);
function BooleanCoder(localName) {
return _super.call(this, "bool", "bool", localName, false) || this;
}
BooleanCoder.prototype.encode = function (writer, value) {
return writer.writeValue(value ? 1 : 0);
};
BooleanCoder.prototype.decode = function (reader) {
return reader.coerce(this.type, !reader.readValue().isZero());
};
return BooleanCoder;
}(abstract_coder_1.Coder));
exports.BooleanCoder = BooleanCoder;
-45
View File
@@ -1,45 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var bytes_1 = require("@ethersproject/bytes");
var abstract_coder_1 = require("./abstract-coder");
var DynamicBytesCoder = /** @class */ (function (_super) {
__extends(DynamicBytesCoder, _super);
function DynamicBytesCoder(type, localName) {
return _super.call(this, type, type, localName, true) || this;
}
DynamicBytesCoder.prototype.encode = function (writer, value) {
value = bytes_1.arrayify(value);
var length = writer.writeValue(value.length);
length += writer.writeBytes(value);
return length;
};
DynamicBytesCoder.prototype.decode = function (reader) {
return reader.readBytes(reader.readValue().toNumber());
};
return DynamicBytesCoder;
}(abstract_coder_1.Coder));
exports.DynamicBytesCoder = DynamicBytesCoder;
var BytesCoder = /** @class */ (function (_super) {
__extends(BytesCoder, _super);
function BytesCoder(localName) {
return _super.call(this, "bytes", localName) || this;
}
BytesCoder.prototype.decode = function (reader) {
return reader.coerce(this.name, bytes_1.hexlify(_super.prototype.decode.call(this, reader)));
};
return BytesCoder;
}(DynamicBytesCoder));
exports.BytesCoder = BytesCoder;
-40
View File
@@ -1,40 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var bytes_1 = require("@ethersproject/bytes");
var abstract_coder_1 = require("./abstract-coder");
// @TODO: Merge this with bytes
var FixedBytesCoder = /** @class */ (function (_super) {
__extends(FixedBytesCoder, _super);
function FixedBytesCoder(size, localName) {
var _this = this;
var name = "bytes" + String(size);
_this = _super.call(this, name, name, localName, false) || this;
_this.size = size;
return _this;
}
FixedBytesCoder.prototype.encode = function (writer, value) {
var data = bytes_1.arrayify(value);
if (data.length !== this.size) {
this._throwError("incorrect data length", value);
}
return writer.writeBytes(data);
};
FixedBytesCoder.prototype.decode = function (reader) {
return reader.coerce(this.name, bytes_1.hexlify(reader.readBytes(this.size)));
};
return FixedBytesCoder;
}(abstract_coder_1.Coder));
exports.FixedBytesCoder = FixedBytesCoder;
-34
View File
@@ -1,34 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var abstract_coder_1 = require("./abstract-coder");
var NullCoder = /** @class */ (function (_super) {
__extends(NullCoder, _super);
function NullCoder(localName) {
return _super.call(this, "null", "", localName, false) || this;
}
NullCoder.prototype.encode = function (writer, value) {
if (value != null) {
this._throwError("not null", value);
}
return writer.writeBytes([]);
};
NullCoder.prototype.decode = function (reader) {
reader.readBytes(0);
return reader.coerce(this.name, null);
};
return NullCoder;
}(abstract_coder_1.Coder));
exports.NullCoder = NullCoder;
-57
View File
@@ -1,57 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var bignumber_1 = require("@ethersproject/bignumber");
var constants_1 = require("@ethersproject/constants");
var abstract_coder_1 = require("./abstract-coder");
var NumberCoder = /** @class */ (function (_super) {
__extends(NumberCoder, _super);
function NumberCoder(size, signed, localName) {
var _this = this;
var name = ((signed ? "int" : "uint") + (size * 8));
_this = _super.call(this, name, name, localName, false) || this;
_this.size = size;
_this.signed = signed;
return _this;
}
NumberCoder.prototype.encode = function (writer, value) {
var v = bignumber_1.BigNumber.from(value);
// Check bounds are safe for encoding
var maxUintValue = constants_1.MaxUint256.mask(writer.wordSize * 8);
if (this.signed) {
var bounds = maxUintValue.mask(this.size * 8 - 1);
if (v.gt(bounds) || v.lt(bounds.add(constants_1.One).mul(constants_1.NegativeOne))) {
this._throwError("value out-of-bounds", value);
}
}
else if (v.lt(constants_1.Zero) || v.gt(maxUintValue.mask(this.size * 8))) {
this._throwError("value out-of-bounds", value);
}
v = v.toTwos(this.size * 8).mask(this.size * 8);
if (this.signed) {
v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);
}
return writer.writeValue(v);
};
NumberCoder.prototype.decode = function (reader) {
var value = reader.readValue().mask(this.size * 8);
if (this.signed) {
value = value.fromTwos(this.size * 8);
}
return reader.coerce(this.name, value);
};
return NumberCoder;
}(abstract_coder_1.Coder));
exports.NumberCoder = NumberCoder;
-31
View File
@@ -1,31 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var strings_1 = require("@ethersproject/strings");
var bytes_1 = require("./bytes");
var StringCoder = /** @class */ (function (_super) {
__extends(StringCoder, _super);
function StringCoder(localName) {
return _super.call(this, "string", localName) || this;
}
StringCoder.prototype.encode = function (writer, value) {
return _super.prototype.encode.call(this, writer, strings_1.toUtf8Bytes(value));
};
StringCoder.prototype.decode = function (reader) {
return strings_1.toUtf8String(_super.prototype.decode.call(this, reader));
};
return StringCoder;
}(bytes_1.DynamicBytesCoder));
exports.StringCoder = StringCoder;
-43
View File
@@ -1,43 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var abstract_coder_1 = require("./abstract-coder");
var array_1 = require("./array");
var TupleCoder = /** @class */ (function (_super) {
__extends(TupleCoder, _super);
function TupleCoder(coders, localName) {
var _this = this;
var dynamic = false;
var types = [];
coders.forEach(function (coder) {
if (coder.dynamic) {
dynamic = true;
}
types.push(coder.type);
});
var type = ("tuple(" + types.join(",") + ")");
_this = _super.call(this, "tuple", type, localName, dynamic) || this;
_this.coders = coders;
return _this;
}
TupleCoder.prototype.encode = function (writer, value) {
return array_1.pack(writer, this.coders, value);
};
TupleCoder.prototype.decode = function (reader) {
return reader.coerce(this.name, array_1.unpack(reader, this.coders));
};
return TupleCoder;
}(abstract_coder_1.Coder));
exports.TupleCoder = TupleCoder;
-816
View File
@@ -1,816 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var bignumber_1 = require("@ethersproject/bignumber");
var properties_1 = require("@ethersproject/properties");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
;
var _constructorGuard = {};
var ModifiersBytes = { calldata: true, memory: true, storage: true };
var ModifiersNest = { calldata: true, memory: true };
function checkModifier(type, name) {
if (type === "bytes" || type === "string") {
if (ModifiersBytes[name]) {
return true;
}
}
else if (type === "address") {
if (name === "payable") {
return true;
}
}
else if (type.indexOf("[") >= 0 || type === "tuple") {
if (ModifiersNest[name]) {
return true;
}
}
if (ModifiersBytes[name] || name === "payable") {
logger.throwArgumentError("invalid modifier", "name", name);
}
return false;
}
// @TODO: Make sure that children of an indexed tuple are marked with a null indexed
function parseParamType(param, allowIndexed) {
var originalParam = param;
function throwError(i) {
logger.throwArgumentError("unexpected character at position " + i, "param", param);
}
param = param.replace(/\s/g, " ");
function newNode(parent) {
var node = { type: "", name: "", parent: parent, state: { allowType: true } };
if (allowIndexed) {
node.indexed = false;
}
return node;
}
var parent = { type: "", name: "", state: { allowType: true } };
var node = parent;
for (var i = 0; i < param.length; i++) {
var c = param[i];
switch (c) {
case "(":
if (node.state.allowType && node.type === "") {
node.type = "tuple";
}
else if (!node.state.allowParams) {
throwError(i);
}
node.state.allowType = false;
node.type = verifyType(node.type);
node.components = [newNode(node)];
node = node.components[0];
break;
case ")":
delete node.state;
if (node.name === "indexed") {
if (!allowIndexed) {
throwError(i);
}
node.indexed = true;
node.name = "";
}
if (checkModifier(node.type, node.name)) {
node.name = "";
}
node.type = verifyType(node.type);
var child = node;
node = node.parent;
if (!node) {
throwError(i);
}
delete child.parent;
node.state.allowParams = false;
node.state.allowName = true;
node.state.allowArray = true;
break;
case ",":
delete node.state;
if (node.name === "indexed") {
if (!allowIndexed) {
throwError(i);
}
node.indexed = true;
node.name = "";
}
if (checkModifier(node.type, node.name)) {
node.name = "";
}
node.type = verifyType(node.type);
var sibling = newNode(node.parent);
//{ type: "", name: "", parent: node.parent, state: { allowType: true } };
node.parent.components.push(sibling);
delete node.parent;
node = sibling;
break;
// Hit a space...
case " ":
// If reading type, the type is done and may read a param or name
if (node.state.allowType) {
if (node.type !== "") {
node.type = verifyType(node.type);
delete node.state.allowType;
node.state.allowName = true;
node.state.allowParams = true;
}
}
// If reading name, the name is done
if (node.state.allowName) {
if (node.name !== "") {
if (node.name === "indexed") {
if (!allowIndexed) {
throwError(i);
}
if (node.indexed) {
throwError(i);
}
node.indexed = true;
node.name = "";
}
else if (checkModifier(node.type, node.name)) {
node.name = "";
}
else {
node.state.allowName = false;
}
}
}
break;
case "[":
if (!node.state.allowArray) {
throwError(i);
}
node.type += c;
node.state.allowArray = false;
node.state.allowName = false;
node.state.readArray = true;
break;
case "]":
if (!node.state.readArray) {
throwError(i);
}
node.type += c;
node.state.readArray = false;
node.state.allowArray = true;
node.state.allowName = true;
break;
default:
if (node.state.allowType) {
node.type += c;
node.state.allowParams = true;
node.state.allowArray = true;
}
else if (node.state.allowName) {
node.name += c;
delete node.state.allowArray;
}
else if (node.state.readArray) {
node.type += c;
}
else {
throwError(i);
}
}
}
if (node.parent) {
logger.throwArgumentError("unexpected eof", "param", param);
}
delete parent.state;
if (node.name === "indexed") {
if (!allowIndexed) {
throwError(originalParam.length - 7);
}
if (node.indexed) {
throwError(originalParam.length - 7);
}
node.indexed = true;
node.name = "";
}
else if (checkModifier(node.type, node.name)) {
node.name = "";
}
parent.type = verifyType(parent.type);
return parent;
}
function populate(object, params) {
for (var key in params) {
properties_1.defineReadOnly(object, key, params[key]);
}
}
exports.FormatTypes = Object.freeze({
// Bare formatting, as is needed for computing a sighash of an event or function
sighash: "sighash",
// Human-Readable with Minimal spacing and without names (compact human-readable)
minimal: "minimal",
// Human-Readble with nice spacing, including all names
full: "full",
// JSON-format a la Solidity
json: "json"
});
var paramTypeArray = new RegExp(/^(.*)\[([0-9]*)\]$/);
var ParamType = /** @class */ (function () {
function ParamType(constructorGuard, params) {
if (constructorGuard !== _constructorGuard) {
logger.throwError("use fromString", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new ParamType()"
});
}
populate(this, params);
var match = this.type.match(paramTypeArray);
if (match) {
populate(this, {
arrayLength: parseInt(match[2] || "-1"),
arrayChildren: ParamType.fromObject({
type: match[1],
components: this.components
}),
baseType: "array"
});
}
else {
populate(this, {
arrayLength: null,
arrayChildren: null,
baseType: ((this.components != null) ? "tuple" : this.type)
});
}
this._isParamType = true;
Object.freeze(this);
}
// Format the parameter fragment
// - sighash: "(uint256,address)"
// - minimal: "tuple(uint256,address) indexed"
// - full: "tuple(uint256 foo, addres bar) indexed baz"
ParamType.prototype.format = function (format) {
if (!format) {
format = exports.FormatTypes.sighash;
}
if (!exports.FormatTypes[format]) {
logger.throwArgumentError("invalid format type", "format", format);
}
if (format === exports.FormatTypes.json) {
var result_1 = {
type: ((this.baseType === "tuple") ? "tuple" : this.type),
name: (this.name || undefined)
};
if (typeof (this.indexed) === "boolean") {
result_1.indexed = this.indexed;
}
if (this.components) {
result_1.components = this.components.map(function (comp) { return JSON.parse(comp.format(format)); });
}
return JSON.stringify(result_1);
}
var result = "";
// Array
if (this.baseType === "array") {
result += this.arrayChildren.format(format);
result += "[" + (this.arrayLength < 0 ? "" : String(this.arrayLength)) + "]";
}
else {
if (this.baseType === "tuple") {
if (format !== exports.FormatTypes.sighash) {
result += this.type;
}
result += "(" + this.components.map(function (comp) { return comp.format(format); }).join((format === exports.FormatTypes.full) ? ", " : ",") + ")";
}
else {
result += this.type;
}
}
if (format !== exports.FormatTypes.sighash) {
if (this.indexed === true) {
result += " indexed";
}
if (format === exports.FormatTypes.full && this.name) {
result += " " + this.name;
}
}
return result;
};
ParamType.from = function (value, allowIndexed) {
if (typeof (value) === "string") {
return ParamType.fromString(value, allowIndexed);
}
return ParamType.fromObject(value);
};
ParamType.fromObject = function (value) {
if (ParamType.isParamType(value)) {
return value;
}
return new ParamType(_constructorGuard, {
name: (value.name || null),
type: verifyType(value.type),
indexed: ((value.indexed == null) ? null : !!value.indexed),
components: (value.components ? value.components.map(ParamType.fromObject) : null)
});
};
ParamType.fromString = function (value, allowIndexed) {
function ParamTypify(node) {
return ParamType.fromObject({
name: node.name,
type: node.type,
indexed: node.indexed,
components: node.components
});
}
return ParamTypify(parseParamType(value, !!allowIndexed));
};
ParamType.isParamType = function (value) {
return !!(value != null && value._isParamType);
};
return ParamType;
}());
exports.ParamType = ParamType;
;
function parseParams(value, allowIndex) {
return splitNesting(value).map(function (param) { return ParamType.fromString(param, allowIndex); });
}
var Fragment = /** @class */ (function () {
function Fragment(constructorGuard, params) {
if (constructorGuard !== _constructorGuard) {
logger.throwError("use a static from method", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new Fragment()"
});
}
populate(this, params);
this._isFragment = true;
Object.freeze(this);
}
Fragment.from = function (value) {
if (Fragment.isFragment(value)) {
return value;
}
if (typeof (value) === "string") {
return Fragment.fromString(value);
}
return Fragment.fromObject(value);
};
Fragment.fromObject = function (value) {
if (Fragment.isFragment(value)) {
return value;
}
switch (value.type) {
case "function":
return FunctionFragment.fromObject(value);
case "event":
return EventFragment.fromObject(value);
case "constructor":
return ConstructorFragment.fromObject(value);
case "fallback":
case "receive":
// @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?
return null;
}
return logger.throwArgumentError("invalid fragment object", "value", value);
};
Fragment.fromString = function (value) {
// Make sure the "returns" is surrounded by a space and all whitespace is exactly one space
value = value.replace(/\s/g, " ");
value = value.replace(/\(/g, " (").replace(/\)/g, ") ").replace(/\s+/g, " ");
value = value.trim();
if (value.split(" ")[0] === "event") {
return EventFragment.fromString(value.substring(5).trim());
}
else if (value.split(" ")[0] === "function") {
return FunctionFragment.fromString(value.substring(8).trim());
}
else if (value.split("(")[0].trim() === "constructor") {
return ConstructorFragment.fromString(value.trim());
}
return logger.throwArgumentError("unsupported fragment", "value", value);
};
Fragment.isFragment = function (value) {
return !!(value && value._isFragment);
};
return Fragment;
}());
exports.Fragment = Fragment;
var EventFragment = /** @class */ (function (_super) {
__extends(EventFragment, _super);
function EventFragment() {
return _super !== null && _super.apply(this, arguments) || this;
}
EventFragment.prototype.format = function (format) {
if (!format) {
format = exports.FormatTypes.sighash;
}
if (!exports.FormatTypes[format]) {
logger.throwArgumentError("invalid format type", "format", format);
}
if (format === exports.FormatTypes.json) {
return JSON.stringify({
type: "event",
anonymous: this.anonymous,
name: this.name,
inputs: this.inputs.map(function (input) { return JSON.parse(input.format(format)); })
});
}
var result = "";
if (format !== exports.FormatTypes.sighash) {
result += "event ";
}
result += this.name + "(" + this.inputs.map(function (input) { return input.format(format); }).join((format === exports.FormatTypes.full) ? ", " : ",") + ") ";
if (format !== exports.FormatTypes.sighash) {
if (this.anonymous) {
result += "anonymous ";
}
}
return result.trim();
};
EventFragment.from = function (value) {
if (typeof (value) === "string") {
return EventFragment.fromString(value);
}
return EventFragment.fromObject(value);
};
EventFragment.fromObject = function (value) {
if (EventFragment.isEventFragment(value)) {
return value;
}
if (value.type !== "event") {
logger.throwArgumentError("invalid event object", "value", value);
}
var params = {
name: verifyIdentifier(value.name),
anonymous: value.anonymous,
inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),
type: "event"
};
return new EventFragment(_constructorGuard, params);
};
EventFragment.fromString = function (value) {
var match = value.match(regexParen);
if (!match) {
logger.throwArgumentError("invalid event string", "value", value);
}
var anonymous = false;
match[3].split(" ").forEach(function (modifier) {
switch (modifier.trim()) {
case "anonymous":
anonymous = true;
break;
case "":
break;
default:
logger.warn("unknown modifier: " + modifier);
}
});
return EventFragment.fromObject({
name: match[1].trim(),
anonymous: anonymous,
inputs: parseParams(match[2], true),
type: "event"
});
};
EventFragment.isEventFragment = function (value) {
return (value && value._isFragment && value.type === "event");
};
return EventFragment;
}(Fragment));
exports.EventFragment = EventFragment;
function parseGas(value, params) {
params.gas = null;
var comps = value.split("@");
if (comps.length !== 1) {
if (comps.length > 2) {
logger.throwArgumentError("invalid human-readable ABI signature", "value", value);
}
if (!comps[1].match(/^[0-9]+$/)) {
logger.throwArgumentError("invalid human-readable ABI signature gas", "value", value);
}
params.gas = bignumber_1.BigNumber.from(comps[1]);
return comps[0];
}
return value;
}
function parseModifiers(value, params) {
params.constant = false;
params.payable = false;
params.stateMutability = "nonpayable";
value.split(" ").forEach(function (modifier) {
switch (modifier.trim()) {
case "constant":
params.constant = true;
break;
case "payable":
params.payable = true;
params.stateMutability = "payable";
break;
case "pure":
params.constant = true;
params.stateMutability = "pure";
break;
case "view":
params.constant = true;
params.stateMutability = "view";
break;
case "external":
case "public":
case "":
break;
default:
console.log("unknown modifier: " + modifier);
}
});
}
function verifyState(value) {
var result = {
constant: false,
payable: true,
stateMutability: "payable"
};
if (value.stateMutability != null) {
result.stateMutability = value.stateMutability;
// Set (and check things are consistent) the constant property
result.constant = (result.stateMutability === "view" || result.stateMutability === "pure");
if (value.constant != null) {
if ((!!value.constant) !== result.constant) {
logger.throwArgumentError("cannot have constant function with mutability " + result.stateMutability, "value", value);
}
}
// Set (and check things are consistent) the payable property
result.payable = (result.stateMutability === "payable");
if (value.payable != null) {
if ((!!value.payable) !== result.payable) {
logger.throwArgumentError("cannot have payable function with mutability " + result.stateMutability, "value", value);
}
}
}
else if (value.payable != null) {
result.payable = !!value.payable;
// If payable we can assume non-constant; otherwise we can't assume
if (value.constant == null && !result.payable && value.type !== "constructor") {
logger.throwArgumentError("unable to determine stateMutability", "value", value);
}
result.constant = !!value.constant;
if (result.constant) {
result.stateMutability = "view";
}
else {
result.stateMutability = (result.payable ? "payable" : "nonpayable");
}
if (result.payable && result.constant) {
logger.throwArgumentError("cannot have constant payable function", "value", value);
}
}
else if (value.constant != null) {
result.constant = !!value.constant;
result.payable = !result.constant;
result.stateMutability = (result.constant ? "view" : "payable");
}
else if (value.type !== "constructor") {
logger.throwArgumentError("unable to determine stateMutability", "value", value);
}
return result;
}
var ConstructorFragment = /** @class */ (function (_super) {
__extends(ConstructorFragment, _super);
function ConstructorFragment() {
return _super !== null && _super.apply(this, arguments) || this;
}
ConstructorFragment.prototype.format = function (format) {
if (!format) {
format = exports.FormatTypes.sighash;
}
if (!exports.FormatTypes[format]) {
logger.throwArgumentError("invalid format type", "format", format);
}
if (format === exports.FormatTypes.json) {
return JSON.stringify({
type: "constructor",
stateMutability: ((this.stateMutability !== "nonpayable") ? this.stateMutability : undefined),
payble: this.payable,
gas: (this.gas ? this.gas.toNumber() : undefined),
inputs: this.inputs.map(function (input) { return JSON.parse(input.format(format)); })
});
}
if (format === exports.FormatTypes.sighash) {
logger.throwError("cannot format a constructor for sighash", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "format(sighash)"
});
}
var result = "constructor(" + this.inputs.map(function (input) { return input.format(format); }).join((format === exports.FormatTypes.full) ? ", " : ",") + ") ";
if (this.stateMutability && this.stateMutability !== "nonpayable") {
result += this.stateMutability + " ";
}
return result.trim();
};
ConstructorFragment.from = function (value) {
if (typeof (value) === "string") {
return ConstructorFragment.fromString(value);
}
return ConstructorFragment.fromObject(value);
};
ConstructorFragment.fromObject = function (value) {
if (ConstructorFragment.isConstructorFragment(value)) {
return value;
}
if (value.type !== "constructor") {
logger.throwArgumentError("invalid constructor object", "value", value);
}
var state = verifyState(value);
if (state.constant) {
logger.throwArgumentError("constructor cannot be constant", "value", value);
}
var params = {
name: null,
type: value.type,
inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),
payable: state.payable,
stateMutability: state.stateMutability,
gas: (value.gas ? bignumber_1.BigNumber.from(value.gas) : null)
};
return new ConstructorFragment(_constructorGuard, params);
};
ConstructorFragment.fromString = function (value) {
var params = { type: "constructor" };
value = parseGas(value, params);
var parens = value.match(regexParen);
if (!parens || parens[1].trim() !== "constructor") {
logger.throwArgumentError("invalid constructor string", "value", value);
}
params.inputs = parseParams(parens[2].trim(), false);
parseModifiers(parens[3].trim(), params);
return ConstructorFragment.fromObject(params);
};
ConstructorFragment.isConstructorFragment = function (value) {
return (value && value._isFragment && value.type === "constructor");
};
return ConstructorFragment;
}(Fragment));
exports.ConstructorFragment = ConstructorFragment;
var FunctionFragment = /** @class */ (function (_super) {
__extends(FunctionFragment, _super);
function FunctionFragment() {
return _super !== null && _super.apply(this, arguments) || this;
}
FunctionFragment.prototype.format = function (format) {
if (!format) {
format = exports.FormatTypes.sighash;
}
if (!exports.FormatTypes[format]) {
logger.throwArgumentError("invalid format type", "format", format);
}
if (format === exports.FormatTypes.json) {
return JSON.stringify({
type: "function",
name: this.name,
constant: this.constant,
stateMutability: ((this.stateMutability !== "nonpayable") ? this.stateMutability : undefined),
payble: this.payable,
gas: (this.gas ? this.gas.toNumber() : undefined),
inputs: this.inputs.map(function (input) { return JSON.parse(input.format(format)); }),
ouputs: this.outputs.map(function (output) { return JSON.parse(output.format(format)); }),
});
}
var result = "";
if (format !== exports.FormatTypes.sighash) {
result += "function ";
}
result += this.name + "(" + this.inputs.map(function (input) { return input.format(format); }).join((format === exports.FormatTypes.full) ? ", " : ",") + ") ";
if (format !== exports.FormatTypes.sighash) {
if (this.stateMutability) {
if (this.stateMutability !== "nonpayable") {
result += (this.stateMutability + " ");
}
}
else if (this.constant) {
result += "view ";
}
if (this.outputs && this.outputs.length) {
result += "returns (" + this.outputs.map(function (output) { return output.format(format); }).join(", ") + ") ";
}
if (this.gas != null) {
result += "@" + this.gas.toString() + " ";
}
}
return result.trim();
};
FunctionFragment.from = function (value) {
if (typeof (value) === "string") {
return FunctionFragment.fromString(value);
}
return FunctionFragment.fromObject(value);
};
FunctionFragment.fromObject = function (value) {
if (FunctionFragment.isFunctionFragment(value)) {
return value;
}
if (value.type !== "function") {
logger.throwArgumentError("invalid function object", "value", value);
}
var state = verifyState(value);
var params = {
type: value.type,
name: verifyIdentifier(value.name),
constant: state.constant,
inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),
outputs: (value.outputs ? value.outputs.map(ParamType.fromObject) : []),
payable: state.payable,
stateMutability: state.stateMutability,
gas: (value.gas ? bignumber_1.BigNumber.from(value.gas) : null)
};
return new FunctionFragment(_constructorGuard, params);
};
FunctionFragment.fromString = function (value) {
var params = { type: "function" };
value = parseGas(value, params);
var comps = value.split(" returns ");
if (comps.length > 2) {
logger.throwArgumentError("invalid function string", "value", value);
}
var parens = comps[0].match(regexParen);
if (!parens) {
logger.throwArgumentError("invalid function signature", "value", value);
}
params.name = parens[1].trim();
if (params.name) {
verifyIdentifier(params.name);
}
params.inputs = parseParams(parens[2], false);
parseModifiers(parens[3].trim(), params);
// We have outputs
if (comps.length > 1) {
var returns = comps[1].match(regexParen);
if (returns[1].trim() != "" || returns[3].trim() != "") {
logger.throwArgumentError("unexpected tokens", "value", value);
}
params.outputs = parseParams(returns[2], false);
}
else {
params.outputs = [];
}
return FunctionFragment.fromObject(params);
};
FunctionFragment.isFunctionFragment = function (value) {
return (value && value._isFragment && value.type === "function");
};
return FunctionFragment;
}(ConstructorFragment));
exports.FunctionFragment = FunctionFragment;
//export class ErrorFragment extends Fragment {
//}
//export class StructFragment extends Fragment {
//}
function verifyType(type) {
// These need to be transformed to their full description
if (type.match(/^uint($|[^1-9])/)) {
type = "uint256" + type.substring(4);
}
else if (type.match(/^int($|[^1-9])/)) {
type = "int256" + type.substring(3);
}
// @TODO: more verification
return type;
}
var regexIdentifier = new RegExp("^[A-Za-z_][A-Za-z0-9_]*$");
function verifyIdentifier(value) {
if (!value || !value.match(regexIdentifier)) {
logger.throwArgumentError("invalid identifier \"" + value + "\"", "value", value);
}
return value;
}
var regexParen = new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");
function splitNesting(value) {
value = value.trim();
var result = [];
var accum = "";
var depth = 0;
for (var offset = 0; offset < value.length; offset++) {
var c = value[offset];
if (c === "," && depth === 0) {
result.push(accum);
accum = "";
}
else {
accum += c;
if (c === "(") {
depth++;
}
else if (c === ")") {
depth--;
if (depth === -1) {
logger.throwArgumentError("unbalanced parenthesis", "value", value);
}
}
}
}
if (accum) {
result.push(accum);
}
return result;
}
-18
View File
@@ -1,18 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var fragments_1 = require("./fragments");
exports.ConstructorFragment = fragments_1.ConstructorFragment;
exports.EventFragment = fragments_1.EventFragment;
exports.FormatTypes = fragments_1.FormatTypes;
exports.Fragment = fragments_1.Fragment;
exports.FunctionFragment = fragments_1.FunctionFragment;
exports.ParamType = fragments_1.ParamType;
var abi_coder_1 = require("./abi-coder");
exports.AbiCoder = abi_coder_1.AbiCoder;
exports.defaultAbiCoder = abi_coder_1.defaultAbiCoder;
var interface_1 = require("./interface");
exports.checkResultErrors = interface_1.checkResultErrors;
exports.Indexed = interface_1.Indexed;
exports.Interface = interface_1.Interface;
exports.LogDescription = interface_1.LogDescription;
exports.TransactionDescription = interface_1.TransactionDescription;
-533
View File
@@ -1,533 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var address_1 = require("@ethersproject/address");
var bignumber_1 = require("@ethersproject/bignumber");
var bytes_1 = require("@ethersproject/bytes");
var hash_1 = require("@ethersproject/hash");
var keccak256_1 = require("@ethersproject/keccak256");
var properties_1 = require("@ethersproject/properties");
var abi_coder_1 = require("./abi-coder");
var abstract_coder_1 = require("./coders/abstract-coder");
exports.checkResultErrors = abstract_coder_1.checkResultErrors;
var fragments_1 = require("./fragments");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
var LogDescription = /** @class */ (function (_super) {
__extends(LogDescription, _super);
function LogDescription() {
return _super !== null && _super.apply(this, arguments) || this;
}
return LogDescription;
}(properties_1.Description));
exports.LogDescription = LogDescription;
var TransactionDescription = /** @class */ (function (_super) {
__extends(TransactionDescription, _super);
function TransactionDescription() {
return _super !== null && _super.apply(this, arguments) || this;
}
return TransactionDescription;
}(properties_1.Description));
exports.TransactionDescription = TransactionDescription;
var Indexed = /** @class */ (function (_super) {
__extends(Indexed, _super);
function Indexed() {
return _super !== null && _super.apply(this, arguments) || this;
}
Indexed.isIndexed = function (value) {
return !!(value && value._isIndexed);
};
return Indexed;
}(properties_1.Description));
exports.Indexed = Indexed;
function wrapAccessError(property, error) {
var wrap = new Error("deferred error during ABI decoding triggered accessing " + property);
wrap.error = error;
return wrap;
}
function checkNames(fragment, type, params) {
params.reduce(function (accum, param) {
if (param.name) {
if (accum[param.name]) {
logger.throwArgumentError("duplicate " + type + " parameter " + JSON.stringify(param.name) + " in " + fragment.format("full"), "fragment", fragment);
}
accum[param.name] = true;
}
return accum;
}, {});
}
var Interface = /** @class */ (function () {
function Interface(fragments) {
var _newTarget = this.constructor;
var _this = this;
logger.checkNew(_newTarget, Interface);
var abi = [];
if (typeof (fragments) === "string") {
abi = JSON.parse(fragments);
}
else {
abi = fragments;
}
properties_1.defineReadOnly(this, "fragments", abi.map(function (fragment) {
return fragments_1.Fragment.from(fragment);
}).filter(function (fragment) { return (fragment != null); }));
properties_1.defineReadOnly(this, "_abiCoder", properties_1.getStatic((_newTarget), "getAbiCoder")());
properties_1.defineReadOnly(this, "functions", {});
properties_1.defineReadOnly(this, "errors", {});
properties_1.defineReadOnly(this, "events", {});
properties_1.defineReadOnly(this, "structs", {});
// Add all fragments by their signature
this.fragments.forEach(function (fragment) {
var bucket = null;
switch (fragment.type) {
case "constructor":
if (_this.deploy) {
logger.warn("duplicate definition - constructor");
return;
}
checkNames(fragment, "input", fragment.inputs);
properties_1.defineReadOnly(_this, "deploy", fragment);
return;
case "function":
checkNames(fragment, "input", fragment.inputs);
checkNames(fragment, "output", fragment.outputs);
bucket = _this.functions;
break;
case "event":
checkNames(fragment, "input", fragment.inputs);
bucket = _this.events;
break;
default:
return;
}
var signature = fragment.format();
if (bucket[signature]) {
logger.warn("duplicate definition - " + signature);
return;
}
bucket[signature] = fragment;
});
// If we do not have a constructor add a default
if (!this.deploy) {
properties_1.defineReadOnly(this, "deploy", fragments_1.ConstructorFragment.from({
payable: false,
type: "constructor"
}));
}
properties_1.defineReadOnly(this, "_isInterface", true);
}
Interface.prototype.format = function (format) {
if (!format) {
format = fragments_1.FormatTypes.full;
}
if (format === fragments_1.FormatTypes.sighash) {
logger.throwArgumentError("interface does not support formatting sighash", "format", format);
}
var abi = this.fragments.map(function (fragment) { return fragment.format(format); });
// We need to re-bundle the JSON fragments a bit
if (format === fragments_1.FormatTypes.json) {
return JSON.stringify(abi.map(function (j) { return JSON.parse(j); }));
}
return abi;
};
// Sub-classes can override these to handle other blockchains
Interface.getAbiCoder = function () {
return abi_coder_1.defaultAbiCoder;
};
Interface.getAddress = function (address) {
return address_1.getAddress(address);
};
Interface.getSighash = function (functionFragment) {
return bytes_1.hexDataSlice(hash_1.id(functionFragment.format()), 0, 4);
};
Interface.getEventTopic = function (eventFragment) {
return hash_1.id(eventFragment.format());
};
// Find a function definition by any means necessary (unless it is ambiguous)
Interface.prototype.getFunction = function (nameOrSignatureOrSighash) {
if (bytes_1.isHexString(nameOrSignatureOrSighash)) {
for (var name_1 in this.functions) {
if (nameOrSignatureOrSighash === this.getSighash(name_1)) {
return this.functions[name_1];
}
}
logger.throwArgumentError("no matching function", "sighash", nameOrSignatureOrSighash);
}
// It is a bare name, look up the function (will return null if ambiguous)
if (nameOrSignatureOrSighash.indexOf("(") === -1) {
var name_2 = nameOrSignatureOrSighash.trim();
var matching = Object.keys(this.functions).filter(function (f) { return (f.split("(" /* fix:) */)[0] === name_2); });
if (matching.length === 0) {
logger.throwArgumentError("no matching function", "name", name_2);
}
else if (matching.length > 1) {
logger.throwArgumentError("multiple matching functions", "name", name_2);
}
return this.functions[matching[0]];
}
// Normlize the signature and lookup the function
var result = this.functions[fragments_1.FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
if (!result) {
logger.throwArgumentError("no matching function", "signature", nameOrSignatureOrSighash);
}
return result;
};
// Find an event definition by any means necessary (unless it is ambiguous)
Interface.prototype.getEvent = function (nameOrSignatureOrTopic) {
if (bytes_1.isHexString(nameOrSignatureOrTopic)) {
var topichash = nameOrSignatureOrTopic.toLowerCase();
for (var name_3 in this.events) {
if (topichash === this.getEventTopic(name_3)) {
return this.events[name_3];
}
}
logger.throwArgumentError("no matching event", "topichash", topichash);
}
// It is a bare name, look up the function (will return null if ambiguous)
if (nameOrSignatureOrTopic.indexOf("(") === -1) {
var name_4 = nameOrSignatureOrTopic.trim();
var matching = Object.keys(this.events).filter(function (f) { return (f.split("(" /* fix:) */)[0] === name_4); });
if (matching.length === 0) {
logger.throwArgumentError("no matching event", "name", name_4);
}
else if (matching.length > 1) {
logger.throwArgumentError("multiple matching events", "name", name_4);
}
return this.events[matching[0]];
}
// Normlize the signature and lookup the function
var result = this.events[fragments_1.EventFragment.fromString(nameOrSignatureOrTopic).format()];
if (!result) {
logger.throwArgumentError("no matching event", "signature", nameOrSignatureOrTopic);
}
return result;
};
// Get the sighash (the bytes4 selector) used by Solidity to identify a function
Interface.prototype.getSighash = function (functionFragment) {
if (typeof (functionFragment) === "string") {
functionFragment = this.getFunction(functionFragment);
}
return properties_1.getStatic(this.constructor, "getSighash")(functionFragment);
};
// Get the topic (the bytes32 hash) used by Solidity to identify an event
Interface.prototype.getEventTopic = function (eventFragment) {
if (typeof (eventFragment) === "string") {
eventFragment = this.getEvent(eventFragment);
}
return properties_1.getStatic(this.constructor, "getEventTopic")(eventFragment);
};
Interface.prototype._decodeParams = function (params, data) {
return this._abiCoder.decode(params, data);
};
Interface.prototype._encodeParams = function (params, values) {
return this._abiCoder.encode(params, values);
};
Interface.prototype.encodeDeploy = function (values) {
return this._encodeParams(this.deploy.inputs, values || []);
};
// Decode the data for a function call (e.g. tx.data)
Interface.prototype.decodeFunctionData = function (functionFragment, data) {
if (typeof (functionFragment) === "string") {
functionFragment = this.getFunction(functionFragment);
}
var bytes = bytes_1.arrayify(data);
if (bytes_1.hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {
logger.throwArgumentError("data signature does not match function " + functionFragment.name + ".", "data", bytes_1.hexlify(bytes));
}
return this._decodeParams(functionFragment.inputs, bytes.slice(4));
};
// Encode the data for a function call (e.g. tx.data)
Interface.prototype.encodeFunctionData = function (functionFragment, values) {
if (typeof (functionFragment) === "string") {
functionFragment = this.getFunction(functionFragment);
}
return bytes_1.hexlify(bytes_1.concat([
this.getSighash(functionFragment),
this._encodeParams(functionFragment.inputs, values || [])
]));
};
// Decode the result from a function call (e.g. from eth_call)
Interface.prototype.decodeFunctionResult = function (functionFragment, data) {
if (typeof (functionFragment) === "string") {
functionFragment = this.getFunction(functionFragment);
}
var bytes = bytes_1.arrayify(data);
var reason = null;
var errorSignature = null;
switch (bytes.length % this._abiCoder._getWordSize()) {
case 0:
try {
return this._abiCoder.decode(functionFragment.outputs, bytes);
}
catch (error) { }
break;
case 4:
if (bytes_1.hexlify(bytes.slice(0, 4)) === "0x08c379a0") {
errorSignature = "Error(string)";
reason = this._abiCoder.decode(["string"], bytes.slice(4))[0];
}
break;
}
return logger.throwError("call revert exception", logger_1.Logger.errors.CALL_EXCEPTION, {
method: functionFragment.format(),
errorSignature: errorSignature,
errorArgs: [reason],
reason: reason
});
};
// Encode the result for a function call (e.g. for eth_call)
Interface.prototype.encodeFunctionResult = function (functionFragment, values) {
if (typeof (functionFragment) === "string") {
functionFragment = this.getFunction(functionFragment);
}
return bytes_1.hexlify(this._abiCoder.encode(functionFragment.outputs, values || []));
};
// Create the filter for the event with search criteria (e.g. for eth_filterLog)
Interface.prototype.encodeFilterTopics = function (eventFragment, values) {
var _this = this;
if (typeof (eventFragment) === "string") {
eventFragment = this.getEvent(eventFragment);
}
if (values.length > eventFragment.inputs.length) {
logger.throwError("too many arguments for " + eventFragment.format(), logger_1.Logger.errors.UNEXPECTED_ARGUMENT, {
argument: "values",
value: values
});
}
var topics = [];
if (!eventFragment.anonymous) {
topics.push(this.getEventTopic(eventFragment));
}
var encodeTopic = function (param, value) {
if (param.type === "string") {
return hash_1.id(value);
}
else if (param.type === "bytes") {
return keccak256_1.keccak256(bytes_1.hexlify(value));
}
// Check addresses are valid
if (param.type === "address") {
_this._abiCoder.encode(["address"], [value]);
}
return bytes_1.hexZeroPad(bytes_1.hexlify(value), 32);
};
values.forEach(function (value, index) {
var param = eventFragment.inputs[index];
if (!param.indexed) {
if (value != null) {
logger.throwArgumentError("cannot filter non-indexed parameters; must be null", ("contract." + param.name), value);
}
return;
}
if (value == null) {
topics.push(null);
}
else if (param.baseType === "array" || param.baseType === "tuple") {
logger.throwArgumentError("filtering with tuples or arrays not supported", ("contract." + param.name), value);
}
else if (Array.isArray(value)) {
topics.push(value.map(function (value) { return encodeTopic(param, value); }));
}
else {
topics.push(encodeTopic(param, value));
}
});
// Trim off trailing nulls
while (topics.length && topics[topics.length - 1] === null) {
topics.pop();
}
return topics;
};
Interface.prototype.encodeEventLog = function (eventFragment, values) {
var _this = this;
if (typeof (eventFragment) === "string") {
eventFragment = this.getEvent(eventFragment);
}
var topics = [];
var dataTypes = [];
var dataValues = [];
if (!eventFragment.anonymous) {
topics.push(this.getEventTopic(eventFragment));
}
if (values.length !== eventFragment.inputs.length) {
logger.throwArgumentError("event arguments/values mismatch", "values", values);
}
eventFragment.inputs.forEach(function (param, index) {
var value = values[index];
if (param.indexed) {
if (param.type === "string") {
topics.push(hash_1.id(value));
}
else if (param.type === "bytes") {
topics.push(keccak256_1.keccak256(value));
}
else if (param.baseType === "tuple" || param.baseType === "array") {
// @TOOD
throw new Error("not implemented");
}
else {
topics.push(_this._abiCoder.encode([param.type], [value]));
}
}
else {
dataTypes.push(param);
dataValues.push(value);
}
});
return {
data: this._abiCoder.encode(dataTypes, dataValues),
topics: topics
};
};
// Decode a filter for the event and the search criteria
Interface.prototype.decodeEventLog = function (eventFragment, data, topics) {
if (typeof (eventFragment) === "string") {
eventFragment = this.getEvent(eventFragment);
}
if (topics != null && !eventFragment.anonymous) {
var topicHash = this.getEventTopic(eventFragment);
if (!bytes_1.isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {
logger.throwError("fragment/topic mismatch", logger_1.Logger.errors.INVALID_ARGUMENT, { argument: "topics[0]", expected: topicHash, value: topics[0] });
}
topics = topics.slice(1);
}
var indexed = [];
var nonIndexed = [];
var dynamic = [];
eventFragment.inputs.forEach(function (param, index) {
if (param.indexed) {
if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") {
indexed.push(fragments_1.ParamType.fromObject({ type: "bytes32", name: param.name }));
dynamic.push(true);
}
else {
indexed.push(param);
dynamic.push(false);
}
}
else {
nonIndexed.push(param);
dynamic.push(false);
}
});
var resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, bytes_1.concat(topics)) : null;
var resultNonIndexed = this._abiCoder.decode(nonIndexed, data);
var result = [];
var nonIndexedIndex = 0, indexedIndex = 0;
eventFragment.inputs.forEach(function (param, index) {
if (param.indexed) {
if (resultIndexed == null) {
result[index] = new Indexed({ _isIndexed: true, hash: null });
}
else if (dynamic[index]) {
result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });
}
else {
try {
result[index] = resultIndexed[indexedIndex++];
}
catch (error) {
result[index] = error;
}
}
}
else {
try {
result[index] = resultNonIndexed[nonIndexedIndex++];
}
catch (error) {
result[index] = error;
}
}
// Add the keyword argument if named and safe
if (param.name && result[param.name] == null) {
var value_1 = result[index];
// Make error named values throw on access
if (value_1 instanceof Error) {
Object.defineProperty(result, param.name, {
get: function () { throw wrapAccessError("property " + JSON.stringify(param.name), value_1); }
});
}
else {
result[param.name] = value_1;
}
}
});
var _loop_1 = function (i) {
var value = result[i];
if (value instanceof Error) {
Object.defineProperty(result, i, {
get: function () { throw wrapAccessError("index " + i, value); }
});
}
};
// Make all error indexed values throw on access
for (var i = 0; i < result.length; i++) {
_loop_1(i);
}
return Object.freeze(result);
};
// Given a transaction, find the matching function fragment (if any) and
// determine all its properties and call parameters
Interface.prototype.parseTransaction = function (tx) {
var fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase());
if (!fragment) {
return null;
}
return new TransactionDescription({
args: this._abiCoder.decode(fragment.inputs, "0x" + tx.data.substring(10)),
functionFragment: fragment,
name: fragment.name,
signature: fragment.format(),
sighash: this.getSighash(fragment),
value: bignumber_1.BigNumber.from(tx.value || "0"),
});
};
// Given an event log, find the matching event fragment (if any) and
// determine all its properties and values
Interface.prototype.parseLog = function (log) {
var fragment = this.getEvent(log.topics[0]);
if (!fragment || fragment.anonymous) {
return null;
}
// @TODO: If anonymous, and the only method, and the input count matches, should we parse?
// Probably not, because just because it is the only event in the ABI does
// not mean we have the full ABI; maybe jsut a fragment?
return new LogDescription({
eventFragment: fragment,
name: fragment.name,
signature: fragment.format(),
topic: this.getEventTopic(fragment),
args: this.decodeEventLog(fragment, log.data, log.topics)
});
};
/*
static from(value: Array<Fragment | string | JsonAbi> | string | Interface) {
if (Interface.isInterface(value)) {
return value;
}
if (typeof(value) === "string") {
return new Interface(JSON.parse(value));
}
return new Interface(value);
}
*/
Interface.isInterface = function (value) {
return !!(value && value._isInterface);
};
return Interface;
}());
exports.Interface = Interface;
-41
View File
@@ -1,41 +0,0 @@
{
"author": "Richard Moore <me@ricmoo.com>",
"dependencies": {
"@ethersproject/address": ">=5.0.0-beta.128",
"@ethersproject/bignumber": ">=5.0.0-beta.130",
"@ethersproject/bytes": ">=5.0.0-beta.129",
"@ethersproject/constants": ">=5.0.0-beta.128",
"@ethersproject/hash": ">=5.0.0-beta.128",
"@ethersproject/keccak256": ">=5.0.0-beta.127",
"@ethersproject/logger": ">=5.0.0-beta.129",
"@ethersproject/properties": ">=5.0.0-beta.131",
"@ethersproject/strings": ">=5.0.0-beta.130"
},
"description": "Utilities and Classes for parsing, formatting and managing Ethereum ABIs.",
"ethereum": "donations.ethers.eth",
"keywords": [
"Ethereum",
"ethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@ethersproject/abi",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git://github.com/ethers-io/ethers.js.git"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0x7f866470aabd8bbe47af1ff527fedbd86445cbfcd3bbf340d34c96b38b8e8606",
"types": "./lib/index.d.ts",
"version": "5.0.0-beta.153"
,"_resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz"
,"_integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg=="
,"_from": "@ethersproject/abi@5.0.0-beta.153"
}
@@ -1,2 +0,0 @@
export const version = "abstract-provider/5.0.5";
//# sourceMappingURL=_version.js.map
-79
View File
@@ -1,79 +0,0 @@
"use strict";
import { isHexString } from "@ethersproject/bytes";
import { Description, defineReadOnly } from "@ethersproject/properties";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
;
;
//export type CallTransactionable = {
// call(transaction: TransactionRequest): Promise<TransactionResponse>;
//};
export class ForkEvent extends Description {
static isForkEvent(value) {
return !!(value && value._isForkEvent);
}
}
export class BlockForkEvent extends ForkEvent {
constructor(blockHash, expiry) {
if (!isHexString(blockHash, 32)) {
logger.throwArgumentError("invalid blockHash", "blockHash", blockHash);
}
super({
_isForkEvent: true,
_isBlockForkEvent: true,
expiry: (expiry || 0),
blockHash: blockHash
});
}
}
export class TransactionForkEvent extends ForkEvent {
constructor(hash, expiry) {
if (!isHexString(hash, 32)) {
logger.throwArgumentError("invalid transaction hash", "hash", hash);
}
super({
_isForkEvent: true,
_isTransactionForkEvent: true,
expiry: (expiry || 0),
hash: hash
});
}
}
export class TransactionOrderForkEvent extends ForkEvent {
constructor(beforeHash, afterHash, expiry) {
if (!isHexString(beforeHash, 32)) {
logger.throwArgumentError("invalid transaction hash", "beforeHash", beforeHash);
}
if (!isHexString(afterHash, 32)) {
logger.throwArgumentError("invalid transaction hash", "afterHash", afterHash);
}
super({
_isForkEvent: true,
_isTransactionOrderForkEvent: true,
expiry: (expiry || 0),
beforeHash: beforeHash,
afterHash: afterHash
});
}
}
///////////////////////////////
// Exported Abstracts
export class Provider {
constructor() {
logger.checkAbstract(new.target, Provider);
defineReadOnly(this, "_isProvider", true);
}
// Alias for "on"
addListener(eventName, listener) {
return this.on(eventName, listener);
}
// Alias for "off"
removeListener(eventName, listener) {
return this.off(eventName, listener);
}
static isProvider(value) {
return !!(value && value._isProvider);
}
}
//# sourceMappingURL=index.js.map
-4
View File
@@ -1,4 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "abstract-provider/5.0.5";
//# sourceMappingURL=_version.js.map
-117
View File
@@ -1,117 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var bytes_1 = require("@ethersproject/bytes");
var properties_1 = require("@ethersproject/properties");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
;
;
//export type CallTransactionable = {
// call(transaction: TransactionRequest): Promise<TransactionResponse>;
//};
var ForkEvent = /** @class */ (function (_super) {
__extends(ForkEvent, _super);
function ForkEvent() {
return _super !== null && _super.apply(this, arguments) || this;
}
ForkEvent.isForkEvent = function (value) {
return !!(value && value._isForkEvent);
};
return ForkEvent;
}(properties_1.Description));
exports.ForkEvent = ForkEvent;
var BlockForkEvent = /** @class */ (function (_super) {
__extends(BlockForkEvent, _super);
function BlockForkEvent(blockHash, expiry) {
var _this = this;
if (!bytes_1.isHexString(blockHash, 32)) {
logger.throwArgumentError("invalid blockHash", "blockHash", blockHash);
}
_this = _super.call(this, {
_isForkEvent: true,
_isBlockForkEvent: true,
expiry: (expiry || 0),
blockHash: blockHash
}) || this;
return _this;
}
return BlockForkEvent;
}(ForkEvent));
exports.BlockForkEvent = BlockForkEvent;
var TransactionForkEvent = /** @class */ (function (_super) {
__extends(TransactionForkEvent, _super);
function TransactionForkEvent(hash, expiry) {
var _this = this;
if (!bytes_1.isHexString(hash, 32)) {
logger.throwArgumentError("invalid transaction hash", "hash", hash);
}
_this = _super.call(this, {
_isForkEvent: true,
_isTransactionForkEvent: true,
expiry: (expiry || 0),
hash: hash
}) || this;
return _this;
}
return TransactionForkEvent;
}(ForkEvent));
exports.TransactionForkEvent = TransactionForkEvent;
var TransactionOrderForkEvent = /** @class */ (function (_super) {
__extends(TransactionOrderForkEvent, _super);
function TransactionOrderForkEvent(beforeHash, afterHash, expiry) {
var _this = this;
if (!bytes_1.isHexString(beforeHash, 32)) {
logger.throwArgumentError("invalid transaction hash", "beforeHash", beforeHash);
}
if (!bytes_1.isHexString(afterHash, 32)) {
logger.throwArgumentError("invalid transaction hash", "afterHash", afterHash);
}
_this = _super.call(this, {
_isForkEvent: true,
_isTransactionOrderForkEvent: true,
expiry: (expiry || 0),
beforeHash: beforeHash,
afterHash: afterHash
}) || this;
return _this;
}
return TransactionOrderForkEvent;
}(ForkEvent));
exports.TransactionOrderForkEvent = TransactionOrderForkEvent;
///////////////////////////////
// Exported Abstracts
var Provider = /** @class */ (function () {
function Provider() {
var _newTarget = this.constructor;
logger.checkAbstract(_newTarget, Provider);
properties_1.defineReadOnly(this, "_isProvider", true);
}
// Alias for "on"
Provider.prototype.addListener = function (eventName, listener) {
return this.on(eventName, listener);
};
// Alias for "off"
Provider.prototype.removeListener = function (eventName, listener) {
return this.off(eventName, listener);
};
Provider.isProvider = function (value) {
return !!(value && value._isProvider);
};
return Provider;
}());
exports.Provider = Provider;
//# sourceMappingURL=index.js.map
-40
View File
@@ -1,40 +0,0 @@
{
"author": "Richard Moore <me@ricmoo.com>",
"dependencies": {
"@ethersproject/bignumber": "^5.0.7",
"@ethersproject/bytes": "^5.0.4",
"@ethersproject/logger": "^5.0.5",
"@ethersproject/networks": "^5.0.3",
"@ethersproject/properties": "^5.0.3",
"@ethersproject/transactions": "^5.0.5",
"@ethersproject/web": "^5.0.6"
},
"description": "An Abstract Class for describing an Ethereum Provider for ethers.",
"ethereum": "donations.ethers.eth",
"gitHead": "ffa4a2d0549fe2c606bda3130f4a3f3d788f8dcf",
"keywords": [
"Ethereum",
"ethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@ethersproject/abstract-provider",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git://github.com/ethers-io/ethers.js.git"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0x87fdc7d7ee69d8c228c0e6946be702acd027a832b5a3deaa5b60e3c9f7110e58",
"types": "./lib/index.d.ts",
"version": "5.0.5"
,"_resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.5.tgz"
,"_integrity": "sha512-i/CjElAkzV7vQBAeoz+IpjGfcFYEP9eD7j3fzZ0fzTq03DO7PPnR+xkEZ1IoDXGwDS+55aLM1xvLDwB/Lx6IOQ=="
,"_from": "@ethersproject/abstract-provider@^5.0.4"
}
@@ -1,2 +0,0 @@
export const version = "abstract-signer/5.0.7";
//# sourceMappingURL=_version.js.map
-208
View File
@@ -1,208 +0,0 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { defineReadOnly, resolveProperties, shallowCopy } from "@ethersproject/properties";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
const allowedTransactionKeys = [
"chainId", "data", "from", "gasLimit", "gasPrice", "nonce", "to", "value"
];
const forwardErrors = [
Logger.errors.INSUFFICIENT_FUNDS,
Logger.errors.NONCE_EXPIRED,
Logger.errors.REPLACEMENT_UNDERPRICED,
];
;
;
export class Signer {
///////////////////
// Sub-classes MUST call super
constructor() {
logger.checkAbstract(new.target, Signer);
defineReadOnly(this, "_isSigner", true);
}
///////////////////
// Sub-classes MAY override these
getBalance(blockTag) {
return __awaiter(this, void 0, void 0, function* () {
this._checkProvider("getBalance");
return yield this.provider.getBalance(this.getAddress(), blockTag);
});
}
getTransactionCount(blockTag) {
return __awaiter(this, void 0, void 0, function* () {
this._checkProvider("getTransactionCount");
return yield this.provider.getTransactionCount(this.getAddress(), blockTag);
});
}
// Populates "from" if unspecified, and estimates the gas for the transation
estimateGas(transaction) {
return __awaiter(this, void 0, void 0, function* () {
this._checkProvider("estimateGas");
const tx = yield resolveProperties(this.checkTransaction(transaction));
return yield this.provider.estimateGas(tx);
});
}
// Populates "from" if unspecified, and calls with the transation
call(transaction, blockTag) {
return __awaiter(this, void 0, void 0, function* () {
this._checkProvider("call");
const tx = yield resolveProperties(this.checkTransaction(transaction));
return yield this.provider.call(tx, blockTag);
});
}
// Populates all fields in a transaction, signs it and sends it to the network
sendTransaction(transaction) {
this._checkProvider("sendTransaction");
return this.populateTransaction(transaction).then((tx) => {
return this.signTransaction(tx).then((signedTx) => {
return this.provider.sendTransaction(signedTx);
});
});
}
getChainId() {
return __awaiter(this, void 0, void 0, function* () {
this._checkProvider("getChainId");
const network = yield this.provider.getNetwork();
return network.chainId;
});
}
getGasPrice() {
return __awaiter(this, void 0, void 0, function* () {
this._checkProvider("getGasPrice");
return yield this.provider.getGasPrice();
});
}
resolveName(name) {
return __awaiter(this, void 0, void 0, function* () {
this._checkProvider("resolveName");
return yield this.provider.resolveName(name);
});
}
// Checks a transaction does not contain invalid keys and if
// no "from" is provided, populates it.
// - does NOT require a provider
// - adds "from" is not present
// - returns a COPY (safe to mutate the result)
// By default called from: (overriding these prevents it)
// - call
// - estimateGas
// - populateTransaction (and therefor sendTransaction)
checkTransaction(transaction) {
for (const key in transaction) {
if (allowedTransactionKeys.indexOf(key) === -1) {
logger.throwArgumentError("invalid transaction key: " + key, "transaction", transaction);
}
}
const tx = shallowCopy(transaction);
if (tx.from == null) {
tx.from = this.getAddress();
}
else {
// Make sure any provided address matches this signer
tx.from = Promise.all([
Promise.resolve(tx.from),
this.getAddress()
]).then((result) => {
if (result[0] !== result[1]) {
logger.throwArgumentError("from address mismatch", "transaction", transaction);
}
return result[0];
});
}
return tx;
}
// Populates ALL keys for a transaction and checks that "from" matches
// this Signer. Should be used by sendTransaction but NOT by signTransaction.
// By default called from: (overriding these prevents it)
// - sendTransaction
populateTransaction(transaction) {
return __awaiter(this, void 0, void 0, function* () {
const tx = yield resolveProperties(this.checkTransaction(transaction));
if (tx.to != null) {
tx.to = Promise.resolve(tx.to).then((to) => this.resolveName(to));
}
if (tx.gasPrice == null) {
tx.gasPrice = this.getGasPrice();
}
if (tx.nonce == null) {
tx.nonce = this.getTransactionCount("pending");
}
if (tx.gasLimit == null) {
tx.gasLimit = this.estimateGas(tx).catch((error) => {
if (forwardErrors.indexOf(error.code) >= 0) {
throw error;
}
return logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
error: error,
tx: tx
});
});
}
if (tx.chainId == null) {
tx.chainId = this.getChainId();
}
else {
tx.chainId = Promise.all([
Promise.resolve(tx.chainId),
this.getChainId()
]).then((results) => {
if (results[1] !== 0 && results[0] !== results[1]) {
logger.throwArgumentError("chainId address mismatch", "transaction", transaction);
}
return results[0];
});
}
return yield resolveProperties(tx);
});
}
///////////////////
// Sub-classes SHOULD leave these alone
_checkProvider(operation) {
if (!this.provider) {
logger.throwError("missing provider", Logger.errors.UNSUPPORTED_OPERATION, {
operation: (operation || "_checkProvider")
});
}
}
static isSigner(value) {
return !!(value && value._isSigner);
}
}
export class VoidSigner extends Signer {
constructor(address, provider) {
logger.checkNew(new.target, VoidSigner);
super();
defineReadOnly(this, "address", address);
defineReadOnly(this, "provider", provider || null);
}
getAddress() {
return Promise.resolve(this.address);
}
_fail(message, operation) {
return Promise.resolve().then(() => {
logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });
});
}
signMessage(message) {
return this._fail("VoidSigner cannot sign messages", "signMessage");
}
signTransaction(transaction) {
return this._fail("VoidSigner cannot sign transactions", "signTransaction");
}
_signTypedData(domain, types, value) {
return this._fail("VoidSigner cannot sign typed data", "signTypedData");
}
connect(provider) {
return new VoidSigner(this.address, provider);
}
}
//# sourceMappingURL=index.js.map
-4
View File
@@ -1,4 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "abstract-signer/5.0.7";
//# sourceMappingURL=_version.js.map
-318
View File
@@ -1,318 +0,0 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
var properties_1 = require("@ethersproject/properties");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
var allowedTransactionKeys = [
"chainId", "data", "from", "gasLimit", "gasPrice", "nonce", "to", "value"
];
var forwardErrors = [
logger_1.Logger.errors.INSUFFICIENT_FUNDS,
logger_1.Logger.errors.NONCE_EXPIRED,
logger_1.Logger.errors.REPLACEMENT_UNDERPRICED,
];
;
;
var Signer = /** @class */ (function () {
///////////////////
// Sub-classes MUST call super
function Signer() {
var _newTarget = this.constructor;
logger.checkAbstract(_newTarget, Signer);
properties_1.defineReadOnly(this, "_isSigner", true);
}
///////////////////
// Sub-classes MAY override these
Signer.prototype.getBalance = function (blockTag) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this._checkProvider("getBalance");
return [4 /*yield*/, this.provider.getBalance(this.getAddress(), blockTag)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
Signer.prototype.getTransactionCount = function (blockTag) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this._checkProvider("getTransactionCount");
return [4 /*yield*/, this.provider.getTransactionCount(this.getAddress(), blockTag)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
// Populates "from" if unspecified, and estimates the gas for the transation
Signer.prototype.estimateGas = function (transaction) {
return __awaiter(this, void 0, void 0, function () {
var tx;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this._checkProvider("estimateGas");
return [4 /*yield*/, properties_1.resolveProperties(this.checkTransaction(transaction))];
case 1:
tx = _a.sent();
return [4 /*yield*/, this.provider.estimateGas(tx)];
case 2: return [2 /*return*/, _a.sent()];
}
});
});
};
// Populates "from" if unspecified, and calls with the transation
Signer.prototype.call = function (transaction, blockTag) {
return __awaiter(this, void 0, void 0, function () {
var tx;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this._checkProvider("call");
return [4 /*yield*/, properties_1.resolveProperties(this.checkTransaction(transaction))];
case 1:
tx = _a.sent();
return [4 /*yield*/, this.provider.call(tx, blockTag)];
case 2: return [2 /*return*/, _a.sent()];
}
});
});
};
// Populates all fields in a transaction, signs it and sends it to the network
Signer.prototype.sendTransaction = function (transaction) {
var _this = this;
this._checkProvider("sendTransaction");
return this.populateTransaction(transaction).then(function (tx) {
return _this.signTransaction(tx).then(function (signedTx) {
return _this.provider.sendTransaction(signedTx);
});
});
};
Signer.prototype.getChainId = function () {
return __awaiter(this, void 0, void 0, function () {
var network;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this._checkProvider("getChainId");
return [4 /*yield*/, this.provider.getNetwork()];
case 1:
network = _a.sent();
return [2 /*return*/, network.chainId];
}
});
});
};
Signer.prototype.getGasPrice = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this._checkProvider("getGasPrice");
return [4 /*yield*/, this.provider.getGasPrice()];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
Signer.prototype.resolveName = function (name) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this._checkProvider("resolveName");
return [4 /*yield*/, this.provider.resolveName(name)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
// Checks a transaction does not contain invalid keys and if
// no "from" is provided, populates it.
// - does NOT require a provider
// - adds "from" is not present
// - returns a COPY (safe to mutate the result)
// By default called from: (overriding these prevents it)
// - call
// - estimateGas
// - populateTransaction (and therefor sendTransaction)
Signer.prototype.checkTransaction = function (transaction) {
for (var key in transaction) {
if (allowedTransactionKeys.indexOf(key) === -1) {
logger.throwArgumentError("invalid transaction key: " + key, "transaction", transaction);
}
}
var tx = properties_1.shallowCopy(transaction);
if (tx.from == null) {
tx.from = this.getAddress();
}
else {
// Make sure any provided address matches this signer
tx.from = Promise.all([
Promise.resolve(tx.from),
this.getAddress()
]).then(function (result) {
if (result[0] !== result[1]) {
logger.throwArgumentError("from address mismatch", "transaction", transaction);
}
return result[0];
});
}
return tx;
};
// Populates ALL keys for a transaction and checks that "from" matches
// this Signer. Should be used by sendTransaction but NOT by signTransaction.
// By default called from: (overriding these prevents it)
// - sendTransaction
Signer.prototype.populateTransaction = function (transaction) {
return __awaiter(this, void 0, void 0, function () {
var tx;
var _this = this;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, properties_1.resolveProperties(this.checkTransaction(transaction))];
case 1:
tx = _a.sent();
if (tx.to != null) {
tx.to = Promise.resolve(tx.to).then(function (to) { return _this.resolveName(to); });
}
if (tx.gasPrice == null) {
tx.gasPrice = this.getGasPrice();
}
if (tx.nonce == null) {
tx.nonce = this.getTransactionCount("pending");
}
if (tx.gasLimit == null) {
tx.gasLimit = this.estimateGas(tx).catch(function (error) {
if (forwardErrors.indexOf(error.code) >= 0) {
throw error;
}
return logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", logger_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
error: error,
tx: tx
});
});
}
if (tx.chainId == null) {
tx.chainId = this.getChainId();
}
else {
tx.chainId = Promise.all([
Promise.resolve(tx.chainId),
this.getChainId()
]).then(function (results) {
if (results[1] !== 0 && results[0] !== results[1]) {
logger.throwArgumentError("chainId address mismatch", "transaction", transaction);
}
return results[0];
});
}
return [4 /*yield*/, properties_1.resolveProperties(tx)];
case 2: return [2 /*return*/, _a.sent()];
}
});
});
};
///////////////////
// Sub-classes SHOULD leave these alone
Signer.prototype._checkProvider = function (operation) {
if (!this.provider) {
logger.throwError("missing provider", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: (operation || "_checkProvider")
});
}
};
Signer.isSigner = function (value) {
return !!(value && value._isSigner);
};
return Signer;
}());
exports.Signer = Signer;
var VoidSigner = /** @class */ (function (_super) {
__extends(VoidSigner, _super);
function VoidSigner(address, provider) {
var _newTarget = this.constructor;
var _this = this;
logger.checkNew(_newTarget, VoidSigner);
_this = _super.call(this) || this;
properties_1.defineReadOnly(_this, "address", address);
properties_1.defineReadOnly(_this, "provider", provider || null);
return _this;
}
VoidSigner.prototype.getAddress = function () {
return Promise.resolve(this.address);
};
VoidSigner.prototype._fail = function (message, operation) {
return Promise.resolve().then(function () {
logger.throwError(message, logger_1.Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });
});
};
VoidSigner.prototype.signMessage = function (message) {
return this._fail("VoidSigner cannot sign messages", "signMessage");
};
VoidSigner.prototype.signTransaction = function (transaction) {
return this._fail("VoidSigner cannot sign transactions", "signTransaction");
};
VoidSigner.prototype._signTypedData = function (domain, types, value) {
return this._fail("VoidSigner cannot sign typed data", "signTypedData");
};
VoidSigner.prototype.connect = function (provider) {
return new VoidSigner(this.address, provider);
};
return VoidSigner;
}(Signer));
exports.VoidSigner = VoidSigner;
//# sourceMappingURL=index.js.map
-38
View File
@@ -1,38 +0,0 @@
{
"author": "Richard Moore <me@ricmoo.com>",
"dependencies": {
"@ethersproject/abstract-provider": "^5.0.4",
"@ethersproject/bignumber": "^5.0.7",
"@ethersproject/bytes": "^5.0.4",
"@ethersproject/logger": "^5.0.5",
"@ethersproject/properties": "^5.0.3"
},
"description": "An Abstract Class for desribing an Ethereum Signer for ethers.",
"ethereum": "donations.ethers.eth",
"gitHead": "86146650d83865d83b10867e9592923eada5d7cc",
"keywords": [
"Ethereum",
"ethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@ethersproject/abstract-signer",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git://github.com/ethers-io/ethers.js.git"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0x722fb4b5e18bb70cda3c2fbd250d96bacdbe7d358c4c426a73d262fc1f751845",
"types": "./lib/index.d.ts",
"version": "5.0.7"
,"_resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.7.tgz"
,"_integrity": "sha512-8W8gy/QutEL60EoMEpvxZ8MFAEWs/JvH5nmZ6xeLXoZvmBCasGmxqHdYjo2cxg0nevkPkq9SeenSsBBZSCx+SQ=="
,"_from": "@ethersproject/abstract-signer@^5.0.6"
}
-2
View File
@@ -1,2 +0,0 @@
export const version = "address/5.0.5";
//# sourceMappingURL=_version.js.map
-136
View File
@@ -1,136 +0,0 @@
"use strict";
// We use this for base 36 maths
import { BN } from "bn.js";
import { arrayify, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from "@ethersproject/bytes";
import { BigNumber } from "@ethersproject/bignumber";
import { keccak256 } from "@ethersproject/keccak256";
import { encode } from "@ethersproject/rlp";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
function getChecksumAddress(address) {
if (!isHexString(address, 20)) {
logger.throwArgumentError("invalid address", "address", address);
}
address = address.toLowerCase();
const chars = address.substring(2).split("");
const expanded = new Uint8Array(40);
for (let i = 0; i < 40; i++) {
expanded[i] = chars[i].charCodeAt(0);
}
const hashed = arrayify(keccak256(expanded));
for (let i = 0; i < 40; i += 2) {
if ((hashed[i >> 1] >> 4) >= 8) {
chars[i] = chars[i].toUpperCase();
}
if ((hashed[i >> 1] & 0x0f) >= 8) {
chars[i + 1] = chars[i + 1].toUpperCase();
}
}
return "0x" + chars.join("");
}
// Shims for environments that are missing some required constants and functions
const MAX_SAFE_INTEGER = 0x1fffffffffffff;
function log10(x) {
if (Math.log10) {
return Math.log10(x);
}
return Math.log(x) / Math.LN10;
}
// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number
// Create lookup table
const ibanLookup = {};
for (let i = 0; i < 10; i++) {
ibanLookup[String(i)] = String(i);
}
for (let i = 0; i < 26; i++) {
ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);
}
// How many decimal digits can we process? (for 64-bit float, this is 15)
const safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));
function ibanChecksum(address) {
address = address.toUpperCase();
address = address.substring(4) + address.substring(0, 2) + "00";
let expanded = address.split("").map((c) => { return ibanLookup[c]; }).join("");
// Javascript can handle integers safely up to 15 (decimal) digits
while (expanded.length >= safeDigits) {
let block = expanded.substring(0, safeDigits);
expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);
}
let checksum = String(98 - (parseInt(expanded, 10) % 97));
while (checksum.length < 2) {
checksum = "0" + checksum;
}
return checksum;
}
;
export function getAddress(address) {
let result = null;
if (typeof (address) !== "string") {
logger.throwArgumentError("invalid address", "address", address);
}
if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {
// Missing the 0x prefix
if (address.substring(0, 2) !== "0x") {
address = "0x" + address;
}
result = getChecksumAddress(address);
// It is a checksummed address with a bad checksum
if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {
logger.throwArgumentError("bad address checksum", "address", address);
}
// Maybe ICAP? (we only support direct mode)
}
else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
// It is an ICAP address with a bad checksum
if (address.substring(2, 4) !== ibanChecksum(address)) {
logger.throwArgumentError("bad icap checksum", "address", address);
}
result = (new BN(address.substring(4), 36)).toString(16);
while (result.length < 40) {
result = "0" + result;
}
result = getChecksumAddress("0x" + result);
}
else {
logger.throwArgumentError("invalid address", "address", address);
}
return result;
}
export function isAddress(address) {
try {
getAddress(address);
return true;
}
catch (error) { }
return false;
}
export function getIcapAddress(address) {
let base36 = (new BN(getAddress(address).substring(2), 16)).toString(36).toUpperCase();
while (base36.length < 30) {
base36 = "0" + base36;
}
return "XE" + ibanChecksum("XE00" + base36) + base36;
}
// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed
export function getContractAddress(transaction) {
let from = null;
try {
from = getAddress(transaction.from);
}
catch (error) {
logger.throwArgumentError("missing from address", "transaction", transaction);
}
const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));
return getAddress(hexDataSlice(keccak256(encode([from, nonce])), 12));
}
export function getCreate2Address(from, salt, initCodeHash) {
if (hexDataLength(salt) !== 32) {
logger.throwArgumentError("salt must be 32 bytes", "salt", salt);
}
if (hexDataLength(initCodeHash) !== 32) {
logger.throwArgumentError("initCodeHash must be 32 bytes", "initCodeHash", initCodeHash);
}
return getAddress(hexDataSlice(keccak256(concat(["0xff", getAddress(from), salt, initCodeHash])), 12));
}
//# sourceMappingURL=index.js.map
-4
View File
@@ -1,4 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "address/5.0.5";
//# sourceMappingURL=_version.js.map
-142
View File
@@ -1,142 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// We use this for base 36 maths
var bn_js_1 = require("bn.js");
var bytes_1 = require("@ethersproject/bytes");
var bignumber_1 = require("@ethersproject/bignumber");
var keccak256_1 = require("@ethersproject/keccak256");
var rlp_1 = require("@ethersproject/rlp");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
function getChecksumAddress(address) {
if (!bytes_1.isHexString(address, 20)) {
logger.throwArgumentError("invalid address", "address", address);
}
address = address.toLowerCase();
var chars = address.substring(2).split("");
var expanded = new Uint8Array(40);
for (var i = 0; i < 40; i++) {
expanded[i] = chars[i].charCodeAt(0);
}
var hashed = bytes_1.arrayify(keccak256_1.keccak256(expanded));
for (var i = 0; i < 40; i += 2) {
if ((hashed[i >> 1] >> 4) >= 8) {
chars[i] = chars[i].toUpperCase();
}
if ((hashed[i >> 1] & 0x0f) >= 8) {
chars[i + 1] = chars[i + 1].toUpperCase();
}
}
return "0x" + chars.join("");
}
// Shims for environments that are missing some required constants and functions
var MAX_SAFE_INTEGER = 0x1fffffffffffff;
function log10(x) {
if (Math.log10) {
return Math.log10(x);
}
return Math.log(x) / Math.LN10;
}
// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number
// Create lookup table
var ibanLookup = {};
for (var i = 0; i < 10; i++) {
ibanLookup[String(i)] = String(i);
}
for (var i = 0; i < 26; i++) {
ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);
}
// How many decimal digits can we process? (for 64-bit float, this is 15)
var safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));
function ibanChecksum(address) {
address = address.toUpperCase();
address = address.substring(4) + address.substring(0, 2) + "00";
var expanded = address.split("").map(function (c) { return ibanLookup[c]; }).join("");
// Javascript can handle integers safely up to 15 (decimal) digits
while (expanded.length >= safeDigits) {
var block = expanded.substring(0, safeDigits);
expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);
}
var checksum = String(98 - (parseInt(expanded, 10) % 97));
while (checksum.length < 2) {
checksum = "0" + checksum;
}
return checksum;
}
;
function getAddress(address) {
var result = null;
if (typeof (address) !== "string") {
logger.throwArgumentError("invalid address", "address", address);
}
if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {
// Missing the 0x prefix
if (address.substring(0, 2) !== "0x") {
address = "0x" + address;
}
result = getChecksumAddress(address);
// It is a checksummed address with a bad checksum
if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {
logger.throwArgumentError("bad address checksum", "address", address);
}
// Maybe ICAP? (we only support direct mode)
}
else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
// It is an ICAP address with a bad checksum
if (address.substring(2, 4) !== ibanChecksum(address)) {
logger.throwArgumentError("bad icap checksum", "address", address);
}
result = (new bn_js_1.BN(address.substring(4), 36)).toString(16);
while (result.length < 40) {
result = "0" + result;
}
result = getChecksumAddress("0x" + result);
}
else {
logger.throwArgumentError("invalid address", "address", address);
}
return result;
}
exports.getAddress = getAddress;
function isAddress(address) {
try {
getAddress(address);
return true;
}
catch (error) { }
return false;
}
exports.isAddress = isAddress;
function getIcapAddress(address) {
var base36 = (new bn_js_1.BN(getAddress(address).substring(2), 16)).toString(36).toUpperCase();
while (base36.length < 30) {
base36 = "0" + base36;
}
return "XE" + ibanChecksum("XE00" + base36) + base36;
}
exports.getIcapAddress = getIcapAddress;
// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed
function getContractAddress(transaction) {
var from = null;
try {
from = getAddress(transaction.from);
}
catch (error) {
logger.throwArgumentError("missing from address", "transaction", transaction);
}
var nonce = bytes_1.stripZeros(bytes_1.arrayify(bignumber_1.BigNumber.from(transaction.nonce).toHexString()));
return getAddress(bytes_1.hexDataSlice(keccak256_1.keccak256(rlp_1.encode([from, nonce])), 12));
}
exports.getContractAddress = getContractAddress;
function getCreate2Address(from, salt, initCodeHash) {
if (bytes_1.hexDataLength(salt) !== 32) {
logger.throwArgumentError("salt must be 32 bytes", "salt", salt);
}
if (bytes_1.hexDataLength(initCodeHash) !== 32) {
logger.throwArgumentError("initCodeHash must be 32 bytes", "initCodeHash", initCodeHash);
}
return getAddress(bytes_1.hexDataSlice(keccak256_1.keccak256(bytes_1.concat(["0xff", getAddress(from), salt, initCodeHash])), 12));
}
exports.getCreate2Address = getCreate2Address;
//# sourceMappingURL=index.js.map
-70
View File
@@ -1,70 +0,0 @@
{
"_from": "@ethersproject/address@^5.0.4",
"_id": "@ethersproject/address@5.0.5",
"_inBundle": false,
"_integrity": "sha512-DpkQ6rwk9jTefrRsJzEm6nhRiJd9pvhn1xN0rw5N/jswXG5r7BLk/GVA0mMAVWAsYfvi2xSc5L41FMox43RYEA==",
"_location": "/@ethersproject/address",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "@ethersproject/address@^5.0.4",
"name": "@ethersproject/address",
"escapedName": "@ethersproject%2faddress",
"scope": "@ethersproject",
"rawSpec": "^5.0.4",
"saveSpec": null,
"fetchSpec": "^5.0.4"
},
"_requiredBy": [
"/@ethersproject/abi",
"/@ethersproject/hash",
"/@ethersproject/transactions"
],
"_resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.5.tgz",
"_shasum": "2caa65f6b7125015395b1b54c985ee0b27059cc7",
"_spec": "@ethersproject/address@^5.0.4",
"_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\BackendServers\\node_modules\\@ethersproject\\transactions",
"author": {
"name": "Richard Moore",
"email": "me@ricmoo.com"
},
"bugs": {
"url": "https://github.com/ethers-io/ethers.js/issues"
},
"bundleDependencies": false,
"dependencies": {
"@ethersproject/bignumber": "^5.0.7",
"@ethersproject/bytes": "^5.0.4",
"@ethersproject/keccak256": "^5.0.3",
"@ethersproject/logger": "^5.0.5",
"@ethersproject/rlp": "^5.0.3",
"bn.js": "^4.4.0"
},
"deprecated": false,
"description": "Utilities for handling Ethereum Addresses for ethers.",
"ethereum": "donations.ethers.eth",
"gitHead": "ffa4a2d0549fe2c606bda3130f4a3f3d788f8dcf",
"homepage": "https://github.com/ethers-io/ethers.js#readme",
"keywords": [
"Ethereum",
"ethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@ethersproject/address",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git://github.com/ethers-io/ethers.js.git"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0xd6263c8653bc6784fed703b8a30075630c544e3861f43ed5b49ab56ffb5d4808",
"types": "./lib/index.d.ts",
"version": "5.0.5"
}
-2
View File
@@ -1,2 +0,0 @@
export const version = "base64/5.0.4";
//# sourceMappingURL=_version.js.map
-19
View File
@@ -1,19 +0,0 @@
"use strict";
import { arrayify } from "@ethersproject/bytes";
export function decode(textData) {
textData = atob(textData);
const data = [];
for (let i = 0; i < textData.length; i++) {
data.push(textData.charCodeAt(i));
}
return arrayify(data);
}
export function encode(data) {
data = arrayify(data);
let textData = "";
for (let i = 0; i < data.length; i++) {
textData += String.fromCharCode(data[i]);
}
return btoa(textData);
}
//# sourceMappingURL=browser.js.map
-10
View File
@@ -1,10 +0,0 @@
"use strict";
import { arrayify } from "@ethersproject/bytes";
export function decode(textData) {
return arrayify(new Uint8Array(Buffer.from(textData, "base64")));
}
;
export function encode(data) {
return Buffer.from(arrayify(data)).toString("base64");
}
//# sourceMappingURL=index.js.map
-4
View File
@@ -1,4 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "base64/5.0.4";
//# sourceMappingURL=_version.js.map
-22
View File
@@ -1,22 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var bytes_1 = require("@ethersproject/bytes");
function decode(textData) {
textData = atob(textData);
var data = [];
for (var i = 0; i < textData.length; i++) {
data.push(textData.charCodeAt(i));
}
return bytes_1.arrayify(data);
}
exports.decode = decode;
function encode(data) {
data = bytes_1.arrayify(data);
var textData = "";
for (var i = 0; i < data.length; i++) {
textData += String.fromCharCode(data[i]);
}
return btoa(textData);
}
exports.encode = encode;
//# sourceMappingURL=browser.js.map
-13
View File
@@ -1,13 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var bytes_1 = require("@ethersproject/bytes");
function decode(textData) {
return bytes_1.arrayify(new Uint8Array(Buffer.from(textData, "base64")));
}
exports.decode = decode;
;
function encode(data) {
return Buffer.from(bytes_1.arrayify(data)).toString("base64");
}
exports.encode = encode;
//# sourceMappingURL=index.js.map
-66
View File
@@ -1,66 +0,0 @@
{
"_from": "@ethersproject/base64@^5.0.3",
"_id": "@ethersproject/base64@5.0.4",
"_inBundle": false,
"_integrity": "sha512-4KRykQ7BQMeOXfvio1YITwHjxwBzh92UoXIdzxDE1p53CK28bbHPdsPNYo0wl0El7lJAMpT2SOdL0hhbWRnyIA==",
"_location": "/@ethersproject/base64",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "@ethersproject/base64@^5.0.3",
"name": "@ethersproject/base64",
"escapedName": "@ethersproject%2fbase64",
"scope": "@ethersproject",
"rawSpec": "^5.0.3",
"saveSpec": null,
"fetchSpec": "^5.0.3"
},
"_requiredBy": [
"/@ethersproject/web"
],
"_resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.4.tgz",
"_shasum": "b0d8fdbf3dda977cf546dcd35725a7b1d5256caa",
"_spec": "@ethersproject/base64@^5.0.3",
"_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\BackendServers\\node_modules\\@ethersproject\\web",
"author": {
"name": "Richard Moore",
"email": "me@ricmoo.com"
},
"browser": "./lib/browser.js",
"browser.esm": "./lib.esm/browser.js",
"browser.umd": "./lib/browser.js",
"bugs": {
"url": "https://github.com/ethers-io/ethers.js/issues"
},
"bundleDependencies": false,
"dependencies": {
"@ethersproject/bytes": "^5.0.4"
},
"deprecated": false,
"description": "Base64 coder.",
"ethereum": "donations.ethers.eth",
"gitHead": "ffa4a2d0549fe2c606bda3130f4a3f3d788f8dcf",
"homepage": "https://github.com/ethers-io/ethers.js#readme",
"keywords": [
"Ethereum",
"ethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@ethersproject/base64",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git://github.com/ethers-io/ethers.js.git"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0xf9edd66aa5131bf0bca2ea188265e0e333d781e4b0ef5e92090a7cef8556cb30",
"types": "./lib/index.d.ts",
"version": "5.0.4"
}
-2
View File
@@ -1,2 +0,0 @@
export const version = "bignumber/5.0.8";
//# sourceMappingURL=_version.js.map
-275
View File
@@ -1,275 +0,0 @@
"use strict";
/**
* BigNumber
*
* A wrapper around the BN.js object. We use the BN.js library
* because it is used by elliptic, so it is required regardles.
*
*/
import { BN } from "bn.js";
import { hexlify, isBytes, isHexString } from "@ethersproject/bytes";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
const _constructorGuard = {};
const MAX_SAFE = 0x1fffffffffffff;
export function isBigNumberish(value) {
return (value != null) && (BigNumber.isBigNumber(value) ||
(typeof (value) === "number" && (value % 1) === 0) ||
(typeof (value) === "string" && !!value.match(/^-?[0-9]+$/)) ||
isHexString(value) ||
(typeof (value) === "bigint") ||
isBytes(value));
}
export class BigNumber {
constructor(constructorGuard, hex) {
logger.checkNew(new.target, BigNumber);
if (constructorGuard !== _constructorGuard) {
logger.throwError("cannot call constructor directly; use BigNumber.from", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new (BigNumber)"
});
}
this._hex = hex;
this._isBigNumber = true;
Object.freeze(this);
}
fromTwos(value) {
return toBigNumber(toBN(this).fromTwos(value));
}
toTwos(value) {
return toBigNumber(toBN(this).toTwos(value));
}
abs() {
if (this._hex[0] === "-") {
return BigNumber.from(this._hex.substring(1));
}
return this;
}
add(other) {
return toBigNumber(toBN(this).add(toBN(other)));
}
sub(other) {
return toBigNumber(toBN(this).sub(toBN(other)));
}
div(other) {
const o = BigNumber.from(other);
if (o.isZero()) {
throwFault("division by zero", "div");
}
return toBigNumber(toBN(this).div(toBN(other)));
}
mul(other) {
return toBigNumber(toBN(this).mul(toBN(other)));
}
mod(other) {
const value = toBN(other);
if (value.isNeg()) {
throwFault("cannot modulo negative values", "mod");
}
return toBigNumber(toBN(this).umod(value));
}
pow(other) {
const value = toBN(other);
if (value.isNeg()) {
throwFault("cannot raise to negative values", "pow");
}
return toBigNumber(toBN(this).pow(value));
}
and(other) {
const value = toBN(other);
if (this.isNegative() || value.isNeg()) {
throwFault("cannot 'and' negative values", "and");
}
return toBigNumber(toBN(this).and(value));
}
or(other) {
const value = toBN(other);
if (this.isNegative() || value.isNeg()) {
throwFault("cannot 'or' negative values", "or");
}
return toBigNumber(toBN(this).or(value));
}
xor(other) {
const value = toBN(other);
if (this.isNegative() || value.isNeg()) {
throwFault("cannot 'xor' negative values", "xor");
}
return toBigNumber(toBN(this).xor(value));
}
mask(value) {
if (this.isNegative() || value < 0) {
throwFault("cannot mask negative values", "mask");
}
return toBigNumber(toBN(this).maskn(value));
}
shl(value) {
if (this.isNegative() || value < 0) {
throwFault("cannot shift negative values", "shl");
}
return toBigNumber(toBN(this).shln(value));
}
shr(value) {
if (this.isNegative() || value < 0) {
throwFault("cannot shift negative values", "shr");
}
return toBigNumber(toBN(this).shrn(value));
}
eq(other) {
return toBN(this).eq(toBN(other));
}
lt(other) {
return toBN(this).lt(toBN(other));
}
lte(other) {
return toBN(this).lte(toBN(other));
}
gt(other) {
return toBN(this).gt(toBN(other));
}
gte(other) {
return toBN(this).gte(toBN(other));
}
isNegative() {
return (this._hex[0] === "-");
}
isZero() {
return toBN(this).isZero();
}
toNumber() {
try {
return toBN(this).toNumber();
}
catch (error) {
throwFault("overflow", "toNumber", this.toString());
}
return null;
}
toString() {
// Lots of people expect this, which we do not support, so check
if (arguments.length !== 0) {
logger.throwError("bigNumber.toString does not accept parameters", Logger.errors.UNEXPECTED_ARGUMENT, {});
}
return toBN(this).toString(10);
}
toHexString() {
return this._hex;
}
toJSON(key) {
return { type: "BigNumber", hex: this.toHexString() };
}
static from(value) {
if (value instanceof BigNumber) {
return value;
}
if (typeof (value) === "string") {
if (value.match(/^-?0x[0-9a-f]+$/i)) {
return new BigNumber(_constructorGuard, toHex(value));
}
if (value.match(/^-?[0-9]+$/)) {
return new BigNumber(_constructorGuard, toHex(new BN(value)));
}
return logger.throwArgumentError("invalid BigNumber string", "value", value);
}
if (typeof (value) === "number") {
if (value % 1) {
throwFault("underflow", "BigNumber.from", value);
}
if (value >= MAX_SAFE || value <= -MAX_SAFE) {
throwFault("overflow", "BigNumber.from", value);
}
return BigNumber.from(String(value));
}
const anyValue = value;
if (typeof (anyValue) === "bigint") {
return BigNumber.from(anyValue.toString());
}
if (isBytes(anyValue)) {
return BigNumber.from(hexlify(anyValue));
}
if (anyValue) {
// Hexable interface (takes piority)
if (anyValue.toHexString) {
const hex = anyValue.toHexString();
if (typeof (hex) === "string") {
return BigNumber.from(hex);
}
}
else {
// For now, handle legacy JSON-ified values (goes away in v6)
let hex = anyValue._hex;
// New-form JSON
if (hex == null && anyValue.type === "BigNumber") {
hex = anyValue.hex;
}
if (typeof (hex) === "string") {
if (isHexString(hex) || (hex[0] === "-" && isHexString(hex.substring(1)))) {
return BigNumber.from(hex);
}
}
}
}
return logger.throwArgumentError("invalid BigNumber value", "value", value);
}
static isBigNumber(value) {
return !!(value && value._isBigNumber);
}
}
// Normalize the hex string
function toHex(value) {
// For BN, call on the hex string
if (typeof (value) !== "string") {
return toHex(value.toString(16));
}
// If negative, prepend the negative sign to the normalized positive value
if (value[0] === "-") {
// Strip off the negative sign
value = value.substring(1);
// Cannot have mulitple negative signs (e.g. "--0x04")
if (value[0] === "-") {
logger.throwArgumentError("invalid hex", "value", value);
}
// Call toHex on the positive component
value = toHex(value);
// Do not allow "-0x00"
if (value === "0x00") {
return value;
}
// Negate the value
return "-" + value;
}
// Add a "0x" prefix if missing
if (value.substring(0, 2) !== "0x") {
value = "0x" + value;
}
// Normalize zero
if (value === "0x") {
return "0x00";
}
// Make the string even length
if (value.length % 2) {
value = "0x0" + value.substring(2);
}
// Trim to smallest even-length string
while (value.length > 4 && value.substring(0, 4) === "0x00") {
value = "0x" + value.substring(4);
}
return value;
}
function toBigNumber(value) {
return BigNumber.from(toHex(value));
}
function toBN(value) {
const hex = BigNumber.from(value).toHexString();
if (hex[0] === "-") {
return (new BN("-" + hex.substring(3), 16));
}
return new BN(hex.substring(2), 16);
}
function throwFault(fault, operation, value) {
const params = { fault: fault, operation: operation };
if (value != null) {
params.value = value;
}
return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);
}
//# sourceMappingURL=bignumber.js.map
-339
View File
@@ -1,339 +0,0 @@
"use strict";
import { arrayify, hexZeroPad, isBytes } from "@ethersproject/bytes";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
import { BigNumber, isBigNumberish } from "./bignumber";
const _constructorGuard = {};
const Zero = BigNumber.from(0);
const NegativeOne = BigNumber.from(-1);
function throwFault(message, fault, operation, value) {
const params = { fault: fault, operation: operation };
if (value !== undefined) {
params.value = value;
}
return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);
}
// Constant to pull zeros from for multipliers
let zeros = "0";
while (zeros.length < 256) {
zeros += zeros;
}
// Returns a string "1" followed by decimal "0"s
function getMultiplier(decimals) {
if (typeof (decimals) !== "number") {
try {
decimals = BigNumber.from(decimals).toNumber();
}
catch (e) { }
}
if (typeof (decimals) === "number" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {
return ("1" + zeros.substring(0, decimals));
}
return logger.throwArgumentError("invalid decimal size", "decimals", decimals);
}
export function formatFixed(value, decimals) {
if (decimals == null) {
decimals = 0;
}
const multiplier = getMultiplier(decimals);
// Make sure wei is a big number (convert as necessary)
value = BigNumber.from(value);
const negative = value.lt(Zero);
if (negative) {
value = value.mul(NegativeOne);
}
let fraction = value.mod(multiplier).toString();
while (fraction.length < multiplier.length - 1) {
fraction = "0" + fraction;
}
// Strip training 0
fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];
const whole = value.div(multiplier).toString();
value = whole + "." + fraction;
if (negative) {
value = "-" + value;
}
return value;
}
export function parseFixed(value, decimals) {
if (decimals == null) {
decimals = 0;
}
const multiplier = getMultiplier(decimals);
if (typeof (value) !== "string" || !value.match(/^-?[0-9.,]+$/)) {
logger.throwArgumentError("invalid decimal value", "value", value);
}
if (multiplier.length - 1 === 0) {
return BigNumber.from(value);
}
// Is it negative?
const negative = (value.substring(0, 1) === "-");
if (negative) {
value = value.substring(1);
}
if (value === ".") {
logger.throwArgumentError("missing value", "value", value);
}
// Split it into a whole and fractional part
const comps = value.split(".");
if (comps.length > 2) {
logger.throwArgumentError("too many decimal points", "value", value);
}
let whole = comps[0], fraction = comps[1];
if (!whole) {
whole = "0";
}
if (!fraction) {
fraction = "0";
}
// Prevent underflow
if (fraction.length > multiplier.length - 1) {
throwFault("fractional component exceeds decimals", "underflow", "parseFixed");
}
// Fully pad the string with zeros to get to wei
while (fraction.length < multiplier.length - 1) {
fraction += "0";
}
const wholeValue = BigNumber.from(whole);
const fractionValue = BigNumber.from(fraction);
let wei = (wholeValue.mul(multiplier)).add(fractionValue);
if (negative) {
wei = wei.mul(NegativeOne);
}
return wei;
}
export class FixedFormat {
constructor(constructorGuard, signed, width, decimals) {
if (constructorGuard !== _constructorGuard) {
logger.throwError("cannot use FixedFormat constructor; use FixedFormat.from", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new FixedFormat"
});
}
this.signed = signed;
this.width = width;
this.decimals = decimals;
this.name = (signed ? "" : "u") + "fixed" + String(width) + "x" + String(decimals);
this._multiplier = getMultiplier(decimals);
Object.freeze(this);
}
static from(value) {
if (value instanceof FixedFormat) {
return value;
}
let signed = true;
let width = 128;
let decimals = 18;
if (typeof (value) === "string") {
if (value === "fixed") {
// defaults...
}
else if (value === "ufixed") {
signed = false;
}
else if (value != null) {
const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);
if (!match) {
logger.throwArgumentError("invalid fixed format", "format", value);
}
signed = (match[1] !== "u");
width = parseInt(match[2]);
decimals = parseInt(match[3]);
}
}
else if (value) {
const check = (key, type, defaultValue) => {
if (value[key] == null) {
return defaultValue;
}
if (typeof (value[key]) !== type) {
logger.throwArgumentError("invalid fixed format (" + key + " not " + type + ")", "format." + key, value[key]);
}
return value[key];
};
signed = check("signed", "boolean", signed);
width = check("width", "number", width);
decimals = check("decimals", "number", decimals);
}
if (width % 8) {
logger.throwArgumentError("invalid fixed format width (not byte aligned)", "format.width", width);
}
if (decimals > 80) {
logger.throwArgumentError("invalid fixed format (decimals too large)", "format.decimals", decimals);
}
return new FixedFormat(_constructorGuard, signed, width, decimals);
}
}
export class FixedNumber {
constructor(constructorGuard, hex, value, format) {
logger.checkNew(new.target, FixedNumber);
if (constructorGuard !== _constructorGuard) {
logger.throwError("cannot use FixedNumber constructor; use FixedNumber.from", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new FixedFormat"
});
}
this.format = format;
this._hex = hex;
this._value = value;
this._isFixedNumber = true;
Object.freeze(this);
}
_checkFormat(other) {
if (this.format.name !== other.format.name) {
logger.throwArgumentError("incompatible format; use fixedNumber.toFormat", "other", other);
}
}
addUnsafe(other) {
this._checkFormat(other);
const a = parseFixed(this._value, this.format.decimals);
const b = parseFixed(other._value, other.format.decimals);
return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);
}
subUnsafe(other) {
this._checkFormat(other);
const a = parseFixed(this._value, this.format.decimals);
const b = parseFixed(other._value, other.format.decimals);
return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);
}
mulUnsafe(other) {
this._checkFormat(other);
const a = parseFixed(this._value, this.format.decimals);
const b = parseFixed(other._value, other.format.decimals);
return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);
}
divUnsafe(other) {
this._checkFormat(other);
const a = parseFixed(this._value, this.format.decimals);
const b = parseFixed(other._value, other.format.decimals);
return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);
}
floor() {
let comps = this.toString().split(".");
let result = FixedNumber.from(comps[0], this.format);
const hasFraction = !comps[1].match(/^(0*)$/);
if (this.isNegative() && hasFraction) {
result = result.subUnsafe(ONE);
}
return result;
}
ceiling() {
let comps = this.toString().split(".");
let result = FixedNumber.from(comps[0], this.format);
const hasFraction = !comps[1].match(/^(0*)$/);
if (!this.isNegative() && hasFraction) {
result = result.addUnsafe(ONE);
}
return result;
}
// @TODO: Support other rounding algorithms
round(decimals) {
if (decimals == null) {
decimals = 0;
}
// If we are already in range, we're done
let comps = this.toString().split(".");
if (decimals < 0 || decimals > 80 || (decimals % 1)) {
logger.throwArgumentError("invalid decimal count", "decimals", decimals);
}
if (comps[1].length <= decimals) {
return this;
}
const factor = FixedNumber.from("1" + zeros.substring(0, decimals));
return this.mulUnsafe(factor).addUnsafe(BUMP).floor().divUnsafe(factor);
}
isZero() {
return (this._value === "0.0");
}
isNegative() {
return (this._value[0] === "-");
}
toString() { return this._value; }
toHexString(width) {
if (width == null) {
return this._hex;
}
if (width % 8) {
logger.throwArgumentError("invalid byte width", "width", width);
}
const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();
return hexZeroPad(hex, width / 8);
}
toUnsafeFloat() { return parseFloat(this.toString()); }
toFormat(format) {
return FixedNumber.fromString(this._value, format);
}
static fromValue(value, decimals, format) {
// If decimals looks more like a format, and there is no format, shift the parameters
if (format == null && decimals != null && !isBigNumberish(decimals)) {
format = decimals;
decimals = null;
}
if (decimals == null) {
decimals = 0;
}
if (format == null) {
format = "fixed";
}
return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));
}
static fromString(value, format) {
if (format == null) {
format = "fixed";
}
const fixedFormat = FixedFormat.from(format);
const numeric = parseFixed(value, fixedFormat.decimals);
if (!fixedFormat.signed && numeric.lt(Zero)) {
throwFault("unsigned value cannot be negative", "overflow", "value", value);
}
let hex = null;
if (fixedFormat.signed) {
hex = numeric.toTwos(fixedFormat.width).toHexString();
}
else {
hex = numeric.toHexString();
hex = hexZeroPad(hex, fixedFormat.width / 8);
}
const decimal = formatFixed(numeric, fixedFormat.decimals);
return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);
}
static fromBytes(value, format) {
if (format == null) {
format = "fixed";
}
const fixedFormat = FixedFormat.from(format);
if (arrayify(value).length > fixedFormat.width / 8) {
throw new Error("overflow");
}
let numeric = BigNumber.from(value);
if (fixedFormat.signed) {
numeric = numeric.fromTwos(fixedFormat.width);
}
const hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString();
const decimal = formatFixed(numeric, fixedFormat.decimals);
return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);
}
static from(value, format) {
if (typeof (value) === "string") {
return FixedNumber.fromString(value, format);
}
if (isBytes(value)) {
return FixedNumber.fromBytes(value, format);
}
try {
return FixedNumber.fromValue(value, 0, format);
}
catch (error) {
// Allow NUMERIC_FAULT to bubble up
if (error.code !== Logger.errors.INVALID_ARGUMENT) {
throw error;
}
}
return logger.throwArgumentError("invalid FixedNumber value", "value", value);
}
static isFixedNumber(value) {
return !!(value && value._isFixedNumber);
}
}
const ONE = FixedNumber.from(1);
const BUMP = FixedNumber.from("0.5");
//# sourceMappingURL=fixednumber.js.map
-3
View File
@@ -1,3 +0,0 @@
export { BigNumber } from "./bignumber";
export { formatFixed, FixedFormat, FixedNumber, parseFixed } from "./fixednumber";
//# sourceMappingURL=index.js.map
-4
View File
@@ -1,4 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "bignumber/5.0.8";
//# sourceMappingURL=_version.js.map
-280
View File
@@ -1,280 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* BigNumber
*
* A wrapper around the BN.js object. We use the BN.js library
* because it is used by elliptic, so it is required regardles.
*
*/
var bn_js_1 = require("bn.js");
var bytes_1 = require("@ethersproject/bytes");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
var _constructorGuard = {};
var MAX_SAFE = 0x1fffffffffffff;
function isBigNumberish(value) {
return (value != null) && (BigNumber.isBigNumber(value) ||
(typeof (value) === "number" && (value % 1) === 0) ||
(typeof (value) === "string" && !!value.match(/^-?[0-9]+$/)) ||
bytes_1.isHexString(value) ||
(typeof (value) === "bigint") ||
bytes_1.isBytes(value));
}
exports.isBigNumberish = isBigNumberish;
var BigNumber = /** @class */ (function () {
function BigNumber(constructorGuard, hex) {
var _newTarget = this.constructor;
logger.checkNew(_newTarget, BigNumber);
if (constructorGuard !== _constructorGuard) {
logger.throwError("cannot call constructor directly; use BigNumber.from", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new (BigNumber)"
});
}
this._hex = hex;
this._isBigNumber = true;
Object.freeze(this);
}
BigNumber.prototype.fromTwos = function (value) {
return toBigNumber(toBN(this).fromTwos(value));
};
BigNumber.prototype.toTwos = function (value) {
return toBigNumber(toBN(this).toTwos(value));
};
BigNumber.prototype.abs = function () {
if (this._hex[0] === "-") {
return BigNumber.from(this._hex.substring(1));
}
return this;
};
BigNumber.prototype.add = function (other) {
return toBigNumber(toBN(this).add(toBN(other)));
};
BigNumber.prototype.sub = function (other) {
return toBigNumber(toBN(this).sub(toBN(other)));
};
BigNumber.prototype.div = function (other) {
var o = BigNumber.from(other);
if (o.isZero()) {
throwFault("division by zero", "div");
}
return toBigNumber(toBN(this).div(toBN(other)));
};
BigNumber.prototype.mul = function (other) {
return toBigNumber(toBN(this).mul(toBN(other)));
};
BigNumber.prototype.mod = function (other) {
var value = toBN(other);
if (value.isNeg()) {
throwFault("cannot modulo negative values", "mod");
}
return toBigNumber(toBN(this).umod(value));
};
BigNumber.prototype.pow = function (other) {
var value = toBN(other);
if (value.isNeg()) {
throwFault("cannot raise to negative values", "pow");
}
return toBigNumber(toBN(this).pow(value));
};
BigNumber.prototype.and = function (other) {
var value = toBN(other);
if (this.isNegative() || value.isNeg()) {
throwFault("cannot 'and' negative values", "and");
}
return toBigNumber(toBN(this).and(value));
};
BigNumber.prototype.or = function (other) {
var value = toBN(other);
if (this.isNegative() || value.isNeg()) {
throwFault("cannot 'or' negative values", "or");
}
return toBigNumber(toBN(this).or(value));
};
BigNumber.prototype.xor = function (other) {
var value = toBN(other);
if (this.isNegative() || value.isNeg()) {
throwFault("cannot 'xor' negative values", "xor");
}
return toBigNumber(toBN(this).xor(value));
};
BigNumber.prototype.mask = function (value) {
if (this.isNegative() || value < 0) {
throwFault("cannot mask negative values", "mask");
}
return toBigNumber(toBN(this).maskn(value));
};
BigNumber.prototype.shl = function (value) {
if (this.isNegative() || value < 0) {
throwFault("cannot shift negative values", "shl");
}
return toBigNumber(toBN(this).shln(value));
};
BigNumber.prototype.shr = function (value) {
if (this.isNegative() || value < 0) {
throwFault("cannot shift negative values", "shr");
}
return toBigNumber(toBN(this).shrn(value));
};
BigNumber.prototype.eq = function (other) {
return toBN(this).eq(toBN(other));
};
BigNumber.prototype.lt = function (other) {
return toBN(this).lt(toBN(other));
};
BigNumber.prototype.lte = function (other) {
return toBN(this).lte(toBN(other));
};
BigNumber.prototype.gt = function (other) {
return toBN(this).gt(toBN(other));
};
BigNumber.prototype.gte = function (other) {
return toBN(this).gte(toBN(other));
};
BigNumber.prototype.isNegative = function () {
return (this._hex[0] === "-");
};
BigNumber.prototype.isZero = function () {
return toBN(this).isZero();
};
BigNumber.prototype.toNumber = function () {
try {
return toBN(this).toNumber();
}
catch (error) {
throwFault("overflow", "toNumber", this.toString());
}
return null;
};
BigNumber.prototype.toString = function () {
// Lots of people expect this, which we do not support, so check
if (arguments.length !== 0) {
logger.throwError("bigNumber.toString does not accept parameters", logger_1.Logger.errors.UNEXPECTED_ARGUMENT, {});
}
return toBN(this).toString(10);
};
BigNumber.prototype.toHexString = function () {
return this._hex;
};
BigNumber.prototype.toJSON = function (key) {
return { type: "BigNumber", hex: this.toHexString() };
};
BigNumber.from = function (value) {
if (value instanceof BigNumber) {
return value;
}
if (typeof (value) === "string") {
if (value.match(/^-?0x[0-9a-f]+$/i)) {
return new BigNumber(_constructorGuard, toHex(value));
}
if (value.match(/^-?[0-9]+$/)) {
return new BigNumber(_constructorGuard, toHex(new bn_js_1.BN(value)));
}
return logger.throwArgumentError("invalid BigNumber string", "value", value);
}
if (typeof (value) === "number") {
if (value % 1) {
throwFault("underflow", "BigNumber.from", value);
}
if (value >= MAX_SAFE || value <= -MAX_SAFE) {
throwFault("overflow", "BigNumber.from", value);
}
return BigNumber.from(String(value));
}
var anyValue = value;
if (typeof (anyValue) === "bigint") {
return BigNumber.from(anyValue.toString());
}
if (bytes_1.isBytes(anyValue)) {
return BigNumber.from(bytes_1.hexlify(anyValue));
}
if (anyValue) {
// Hexable interface (takes piority)
if (anyValue.toHexString) {
var hex = anyValue.toHexString();
if (typeof (hex) === "string") {
return BigNumber.from(hex);
}
}
else {
// For now, handle legacy JSON-ified values (goes away in v6)
var hex = anyValue._hex;
// New-form JSON
if (hex == null && anyValue.type === "BigNumber") {
hex = anyValue.hex;
}
if (typeof (hex) === "string") {
if (bytes_1.isHexString(hex) || (hex[0] === "-" && bytes_1.isHexString(hex.substring(1)))) {
return BigNumber.from(hex);
}
}
}
}
return logger.throwArgumentError("invalid BigNumber value", "value", value);
};
BigNumber.isBigNumber = function (value) {
return !!(value && value._isBigNumber);
};
return BigNumber;
}());
exports.BigNumber = BigNumber;
// Normalize the hex string
function toHex(value) {
// For BN, call on the hex string
if (typeof (value) !== "string") {
return toHex(value.toString(16));
}
// If negative, prepend the negative sign to the normalized positive value
if (value[0] === "-") {
// Strip off the negative sign
value = value.substring(1);
// Cannot have mulitple negative signs (e.g. "--0x04")
if (value[0] === "-") {
logger.throwArgumentError("invalid hex", "value", value);
}
// Call toHex on the positive component
value = toHex(value);
// Do not allow "-0x00"
if (value === "0x00") {
return value;
}
// Negate the value
return "-" + value;
}
// Add a "0x" prefix if missing
if (value.substring(0, 2) !== "0x") {
value = "0x" + value;
}
// Normalize zero
if (value === "0x") {
return "0x00";
}
// Make the string even length
if (value.length % 2) {
value = "0x0" + value.substring(2);
}
// Trim to smallest even-length string
while (value.length > 4 && value.substring(0, 4) === "0x00") {
value = "0x" + value.substring(4);
}
return value;
}
function toBigNumber(value) {
return BigNumber.from(toHex(value));
}
function toBN(value) {
var hex = BigNumber.from(value).toHexString();
if (hex[0] === "-") {
return (new bn_js_1.BN("-" + hex.substring(3), 16));
}
return new bn_js_1.BN(hex.substring(2), 16);
}
function throwFault(fault, operation, value) {
var params = { fault: fault, operation: operation };
if (value != null) {
params.value = value;
}
return logger.throwError(fault, logger_1.Logger.errors.NUMERIC_FAULT, params);
}
//# sourceMappingURL=bignumber.js.map
-347
View File
@@ -1,347 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var bytes_1 = require("@ethersproject/bytes");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
var bignumber_1 = require("./bignumber");
var _constructorGuard = {};
var Zero = bignumber_1.BigNumber.from(0);
var NegativeOne = bignumber_1.BigNumber.from(-1);
function throwFault(message, fault, operation, value) {
var params = { fault: fault, operation: operation };
if (value !== undefined) {
params.value = value;
}
return logger.throwError(message, logger_1.Logger.errors.NUMERIC_FAULT, params);
}
// Constant to pull zeros from for multipliers
var zeros = "0";
while (zeros.length < 256) {
zeros += zeros;
}
// Returns a string "1" followed by decimal "0"s
function getMultiplier(decimals) {
if (typeof (decimals) !== "number") {
try {
decimals = bignumber_1.BigNumber.from(decimals).toNumber();
}
catch (e) { }
}
if (typeof (decimals) === "number" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {
return ("1" + zeros.substring(0, decimals));
}
return logger.throwArgumentError("invalid decimal size", "decimals", decimals);
}
function formatFixed(value, decimals) {
if (decimals == null) {
decimals = 0;
}
var multiplier = getMultiplier(decimals);
// Make sure wei is a big number (convert as necessary)
value = bignumber_1.BigNumber.from(value);
var negative = value.lt(Zero);
if (negative) {
value = value.mul(NegativeOne);
}
var fraction = value.mod(multiplier).toString();
while (fraction.length < multiplier.length - 1) {
fraction = "0" + fraction;
}
// Strip training 0
fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];
var whole = value.div(multiplier).toString();
value = whole + "." + fraction;
if (negative) {
value = "-" + value;
}
return value;
}
exports.formatFixed = formatFixed;
function parseFixed(value, decimals) {
if (decimals == null) {
decimals = 0;
}
var multiplier = getMultiplier(decimals);
if (typeof (value) !== "string" || !value.match(/^-?[0-9.,]+$/)) {
logger.throwArgumentError("invalid decimal value", "value", value);
}
if (multiplier.length - 1 === 0) {
return bignumber_1.BigNumber.from(value);
}
// Is it negative?
var negative = (value.substring(0, 1) === "-");
if (negative) {
value = value.substring(1);
}
if (value === ".") {
logger.throwArgumentError("missing value", "value", value);
}
// Split it into a whole and fractional part
var comps = value.split(".");
if (comps.length > 2) {
logger.throwArgumentError("too many decimal points", "value", value);
}
var whole = comps[0], fraction = comps[1];
if (!whole) {
whole = "0";
}
if (!fraction) {
fraction = "0";
}
// Prevent underflow
if (fraction.length > multiplier.length - 1) {
throwFault("fractional component exceeds decimals", "underflow", "parseFixed");
}
// Fully pad the string with zeros to get to wei
while (fraction.length < multiplier.length - 1) {
fraction += "0";
}
var wholeValue = bignumber_1.BigNumber.from(whole);
var fractionValue = bignumber_1.BigNumber.from(fraction);
var wei = (wholeValue.mul(multiplier)).add(fractionValue);
if (negative) {
wei = wei.mul(NegativeOne);
}
return wei;
}
exports.parseFixed = parseFixed;
var FixedFormat = /** @class */ (function () {
function FixedFormat(constructorGuard, signed, width, decimals) {
if (constructorGuard !== _constructorGuard) {
logger.throwError("cannot use FixedFormat constructor; use FixedFormat.from", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new FixedFormat"
});
}
this.signed = signed;
this.width = width;
this.decimals = decimals;
this.name = (signed ? "" : "u") + "fixed" + String(width) + "x" + String(decimals);
this._multiplier = getMultiplier(decimals);
Object.freeze(this);
}
FixedFormat.from = function (value) {
if (value instanceof FixedFormat) {
return value;
}
var signed = true;
var width = 128;
var decimals = 18;
if (typeof (value) === "string") {
if (value === "fixed") {
// defaults...
}
else if (value === "ufixed") {
signed = false;
}
else if (value != null) {
var match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);
if (!match) {
logger.throwArgumentError("invalid fixed format", "format", value);
}
signed = (match[1] !== "u");
width = parseInt(match[2]);
decimals = parseInt(match[3]);
}
}
else if (value) {
var check = function (key, type, defaultValue) {
if (value[key] == null) {
return defaultValue;
}
if (typeof (value[key]) !== type) {
logger.throwArgumentError("invalid fixed format (" + key + " not " + type + ")", "format." + key, value[key]);
}
return value[key];
};
signed = check("signed", "boolean", signed);
width = check("width", "number", width);
decimals = check("decimals", "number", decimals);
}
if (width % 8) {
logger.throwArgumentError("invalid fixed format width (not byte aligned)", "format.width", width);
}
if (decimals > 80) {
logger.throwArgumentError("invalid fixed format (decimals too large)", "format.decimals", decimals);
}
return new FixedFormat(_constructorGuard, signed, width, decimals);
};
return FixedFormat;
}());
exports.FixedFormat = FixedFormat;
var FixedNumber = /** @class */ (function () {
function FixedNumber(constructorGuard, hex, value, format) {
var _newTarget = this.constructor;
logger.checkNew(_newTarget, FixedNumber);
if (constructorGuard !== _constructorGuard) {
logger.throwError("cannot use FixedNumber constructor; use FixedNumber.from", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new FixedFormat"
});
}
this.format = format;
this._hex = hex;
this._value = value;
this._isFixedNumber = true;
Object.freeze(this);
}
FixedNumber.prototype._checkFormat = function (other) {
if (this.format.name !== other.format.name) {
logger.throwArgumentError("incompatible format; use fixedNumber.toFormat", "other", other);
}
};
FixedNumber.prototype.addUnsafe = function (other) {
this._checkFormat(other);
var a = parseFixed(this._value, this.format.decimals);
var b = parseFixed(other._value, other.format.decimals);
return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);
};
FixedNumber.prototype.subUnsafe = function (other) {
this._checkFormat(other);
var a = parseFixed(this._value, this.format.decimals);
var b = parseFixed(other._value, other.format.decimals);
return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);
};
FixedNumber.prototype.mulUnsafe = function (other) {
this._checkFormat(other);
var a = parseFixed(this._value, this.format.decimals);
var b = parseFixed(other._value, other.format.decimals);
return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);
};
FixedNumber.prototype.divUnsafe = function (other) {
this._checkFormat(other);
var a = parseFixed(this._value, this.format.decimals);
var b = parseFixed(other._value, other.format.decimals);
return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);
};
FixedNumber.prototype.floor = function () {
var comps = this.toString().split(".");
var result = FixedNumber.from(comps[0], this.format);
var hasFraction = !comps[1].match(/^(0*)$/);
if (this.isNegative() && hasFraction) {
result = result.subUnsafe(ONE);
}
return result;
};
FixedNumber.prototype.ceiling = function () {
var comps = this.toString().split(".");
var result = FixedNumber.from(comps[0], this.format);
var hasFraction = !comps[1].match(/^(0*)$/);
if (!this.isNegative() && hasFraction) {
result = result.addUnsafe(ONE);
}
return result;
};
// @TODO: Support other rounding algorithms
FixedNumber.prototype.round = function (decimals) {
if (decimals == null) {
decimals = 0;
}
// If we are already in range, we're done
var comps = this.toString().split(".");
if (decimals < 0 || decimals > 80 || (decimals % 1)) {
logger.throwArgumentError("invalid decimal count", "decimals", decimals);
}
if (comps[1].length <= decimals) {
return this;
}
var factor = FixedNumber.from("1" + zeros.substring(0, decimals));
return this.mulUnsafe(factor).addUnsafe(BUMP).floor().divUnsafe(factor);
};
FixedNumber.prototype.isZero = function () {
return (this._value === "0.0");
};
FixedNumber.prototype.isNegative = function () {
return (this._value[0] === "-");
};
FixedNumber.prototype.toString = function () { return this._value; };
FixedNumber.prototype.toHexString = function (width) {
if (width == null) {
return this._hex;
}
if (width % 8) {
logger.throwArgumentError("invalid byte width", "width", width);
}
var hex = bignumber_1.BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();
return bytes_1.hexZeroPad(hex, width / 8);
};
FixedNumber.prototype.toUnsafeFloat = function () { return parseFloat(this.toString()); };
FixedNumber.prototype.toFormat = function (format) {
return FixedNumber.fromString(this._value, format);
};
FixedNumber.fromValue = function (value, decimals, format) {
// If decimals looks more like a format, and there is no format, shift the parameters
if (format == null && decimals != null && !bignumber_1.isBigNumberish(decimals)) {
format = decimals;
decimals = null;
}
if (decimals == null) {
decimals = 0;
}
if (format == null) {
format = "fixed";
}
return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));
};
FixedNumber.fromString = function (value, format) {
if (format == null) {
format = "fixed";
}
var fixedFormat = FixedFormat.from(format);
var numeric = parseFixed(value, fixedFormat.decimals);
if (!fixedFormat.signed && numeric.lt(Zero)) {
throwFault("unsigned value cannot be negative", "overflow", "value", value);
}
var hex = null;
if (fixedFormat.signed) {
hex = numeric.toTwos(fixedFormat.width).toHexString();
}
else {
hex = numeric.toHexString();
hex = bytes_1.hexZeroPad(hex, fixedFormat.width / 8);
}
var decimal = formatFixed(numeric, fixedFormat.decimals);
return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);
};
FixedNumber.fromBytes = function (value, format) {
if (format == null) {
format = "fixed";
}
var fixedFormat = FixedFormat.from(format);
if (bytes_1.arrayify(value).length > fixedFormat.width / 8) {
throw new Error("overflow");
}
var numeric = bignumber_1.BigNumber.from(value);
if (fixedFormat.signed) {
numeric = numeric.fromTwos(fixedFormat.width);
}
var hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString();
var decimal = formatFixed(numeric, fixedFormat.decimals);
return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);
};
FixedNumber.from = function (value, format) {
if (typeof (value) === "string") {
return FixedNumber.fromString(value, format);
}
if (bytes_1.isBytes(value)) {
return FixedNumber.fromBytes(value, format);
}
try {
return FixedNumber.fromValue(value, 0, format);
}
catch (error) {
// Allow NUMERIC_FAULT to bubble up
if (error.code !== logger_1.Logger.errors.INVALID_ARGUMENT) {
throw error;
}
}
return logger.throwArgumentError("invalid FixedNumber value", "value", value);
};
FixedNumber.isFixedNumber = function (value) {
return !!(value && value._isFixedNumber);
};
return FixedNumber;
}());
exports.FixedNumber = FixedNumber;
var ONE = FixedNumber.from(1);
var BUMP = FixedNumber.from("0.5");
//# sourceMappingURL=fixednumber.js.map
-10
View File
@@ -1,10 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var bignumber_1 = require("./bignumber");
exports.BigNumber = bignumber_1.BigNumber;
var fixednumber_1 = require("./fixednumber");
exports.formatFixed = fixednumber_1.formatFixed;
exports.FixedFormat = fixednumber_1.FixedFormat;
exports.FixedNumber = fixednumber_1.FixedNumber;
exports.parseFixed = fixednumber_1.parseFixed;
//# sourceMappingURL=index.js.map
-72
View File
@@ -1,72 +0,0 @@
{
"_from": "@ethersproject/bignumber@^5.0.7",
"_id": "@ethersproject/bignumber@5.0.8",
"_inBundle": false,
"_integrity": "sha512-KXFVAFKS1jdTXYN8BE5Oj+ZfPMh28iRdFeNGBVT6cUFdtiPVqeXqc0ggvBqA3A1VoFFGgM7oAeaagA393aORHA==",
"_location": "/@ethersproject/bignumber",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "@ethersproject/bignumber@^5.0.7",
"name": "@ethersproject/bignumber",
"escapedName": "@ethersproject%2fbignumber",
"scope": "@ethersproject",
"rawSpec": "^5.0.7",
"saveSpec": null,
"fetchSpec": "^5.0.7"
},
"_requiredBy": [
"/@ethersproject/abi",
"/@ethersproject/abstract-provider",
"/@ethersproject/abstract-signer",
"/@ethersproject/address",
"/@ethersproject/constants",
"/@ethersproject/hash",
"/@ethersproject/transactions"
],
"_resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.8.tgz",
"_shasum": "cee33bd8eb0266176def0d371b45274b1d2c4ec0",
"_spec": "@ethersproject/bignumber@^5.0.7",
"_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\BackendServers\\node_modules\\@ethersproject\\transactions",
"author": {
"name": "Richard Moore",
"email": "me@ricmoo.com"
},
"bugs": {
"url": "https://github.com/ethers-io/ethers.js/issues"
},
"bundleDependencies": false,
"dependencies": {
"@ethersproject/bytes": "^5.0.4",
"@ethersproject/logger": "^5.0.5",
"bn.js": "^4.4.0"
},
"deprecated": false,
"description": "BigNumber library used in ethers.js.",
"ethereum": "donations.ethers.eth",
"gitHead": "ffa4a2d0549fe2c606bda3130f4a3f3d788f8dcf",
"homepage": "https://github.com/ethers-io/ethers.js#readme",
"keywords": [
"Ethereum",
"bignumber",
"bn"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@ethersproject/bignumber",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git://github.com/ethers-io/ethers.js.git"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0x13de0d9c0138d0d056ed658b8f8744fab45fcdf4b52dcd9456bfd7285a4288ce",
"types": "./lib/index.d.ts",
"version": "5.0.8"
}
-2
View File
@@ -1,2 +0,0 @@
export const version = "bytes/5.0.5";
//# sourceMappingURL=_version.js.map
-380
View File
@@ -1,380 +0,0 @@
"use strict";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
///////////////////////////////
function isHexable(value) {
return !!(value.toHexString);
}
function addSlice(array) {
if (array.slice) {
return array;
}
array.slice = function () {
const args = Array.prototype.slice.call(arguments);
return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));
};
return array;
}
export function isBytesLike(value) {
return ((isHexString(value) && !(value.length % 2)) || isBytes(value));
}
export function isBytes(value) {
if (value == null) {
return false;
}
if (value.constructor === Uint8Array) {
return true;
}
if (typeof (value) === "string") {
return false;
}
if (value.length == null) {
return false;
}
for (let i = 0; i < value.length; i++) {
const v = value[i];
if (v < 0 || v >= 256 || (v % 1)) {
return false;
}
}
return true;
}
export function arrayify(value, options) {
if (!options) {
options = {};
}
if (typeof (value) === "number") {
logger.checkSafeUint53(value, "invalid arrayify value");
const result = [];
while (value) {
result.unshift(value & 0xff);
value = parseInt(String(value / 256));
}
if (result.length === 0) {
result.push(0);
}
return addSlice(new Uint8Array(result));
}
if (options.allowMissingPrefix && typeof (value) === "string" && value.substring(0, 2) !== "0x") {
value = "0x" + value;
}
if (isHexable(value)) {
value = value.toHexString();
}
if (isHexString(value)) {
let hex = value.substring(2);
if (hex.length % 2) {
if (options.hexPad === "left") {
hex = "0x0" + hex.substring(2);
}
else if (options.hexPad === "right") {
hex += "0";
}
else {
logger.throwArgumentError("hex data is odd-length", "value", value);
}
}
const result = [];
for (let i = 0; i < hex.length; i += 2) {
result.push(parseInt(hex.substring(i, i + 2), 16));
}
return addSlice(new Uint8Array(result));
}
if (isBytes(value)) {
return addSlice(new Uint8Array(value));
}
return logger.throwArgumentError("invalid arrayify value", "value", value);
}
export function concat(items) {
const objects = items.map(item => arrayify(item));
const length = objects.reduce((accum, item) => (accum + item.length), 0);
const result = new Uint8Array(length);
objects.reduce((offset, object) => {
result.set(object, offset);
return offset + object.length;
}, 0);
return addSlice(result);
}
export function stripZeros(value) {
let result = arrayify(value);
if (result.length === 0) {
return result;
}
// Find the first non-zero entry
let start = 0;
while (start < result.length && result[start] === 0) {
start++;
}
// If we started with zeros, strip them
if (start) {
result = result.slice(start);
}
return result;
}
export function zeroPad(value, length) {
value = arrayify(value);
if (value.length > length) {
logger.throwArgumentError("value out of range", "value", arguments[0]);
}
const result = new Uint8Array(length);
result.set(value, length - value.length);
return addSlice(result);
}
export function isHexString(value, length) {
if (typeof (value) !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) {
return false;
}
if (length && value.length !== 2 + 2 * length) {
return false;
}
return true;
}
const HexCharacters = "0123456789abcdef";
export function hexlify(value, options) {
if (!options) {
options = {};
}
if (typeof (value) === "number") {
logger.checkSafeUint53(value, "invalid hexlify value");
let hex = "";
while (value) {
hex = HexCharacters[value & 0x0f] + hex;
value = Math.floor(value / 16);
}
if (hex.length) {
if (hex.length % 2) {
hex = "0" + hex;
}
return "0x" + hex;
}
return "0x00";
}
if (options.allowMissingPrefix && typeof (value) === "string" && value.substring(0, 2) !== "0x") {
value = "0x" + value;
}
if (isHexable(value)) {
return value.toHexString();
}
if (isHexString(value)) {
if (value.length % 2) {
if (options.hexPad === "left") {
value = "0x0" + value.substring(2);
}
else if (options.hexPad === "right") {
value += "0";
}
else {
logger.throwArgumentError("hex data is odd-length", "value", value);
}
}
return value.toLowerCase();
}
if (isBytes(value)) {
let result = "0x";
for (let i = 0; i < value.length; i++) {
let v = value[i];
result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];
}
return result;
}
return logger.throwArgumentError("invalid hexlify value", "value", value);
}
/*
function unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {
if (typeof(value) === "string" && value.length % 2 && value.substring(0, 2) === "0x") {
return "0x0" + value.substring(2);
}
return value;
}
*/
export function hexDataLength(data) {
if (typeof (data) !== "string") {
data = hexlify(data);
}
else if (!isHexString(data) || (data.length % 2)) {
return null;
}
return (data.length - 2) / 2;
}
export function hexDataSlice(data, offset, endOffset) {
if (typeof (data) !== "string") {
data = hexlify(data);
}
else if (!isHexString(data) || (data.length % 2)) {
logger.throwArgumentError("invalid hexData", "value", data);
}
offset = 2 + 2 * offset;
if (endOffset != null) {
return "0x" + data.substring(offset, 2 + 2 * endOffset);
}
return "0x" + data.substring(offset);
}
export function hexConcat(items) {
let result = "0x";
items.forEach((item) => {
result += hexlify(item).substring(2);
});
return result;
}
export function hexValue(value) {
const trimmed = hexStripZeros(hexlify(value, { hexPad: "left" }));
if (trimmed === "0x") {
return "0x0";
}
return trimmed;
}
export function hexStripZeros(value) {
if (typeof (value) !== "string") {
value = hexlify(value);
}
if (!isHexString(value)) {
logger.throwArgumentError("invalid hex string", "value", value);
}
value = value.substring(2);
let offset = 0;
while (offset < value.length && value[offset] === "0") {
offset++;
}
return "0x" + value.substring(offset);
}
export function hexZeroPad(value, length) {
if (typeof (value) !== "string") {
value = hexlify(value);
}
else if (!isHexString(value)) {
logger.throwArgumentError("invalid hex string", "value", value);
}
if (value.length > 2 * length + 2) {
logger.throwArgumentError("value out of range", "value", arguments[1]);
}
while (value.length < 2 * length + 2) {
value = "0x0" + value.substring(2);
}
return value;
}
export function splitSignature(signature) {
const result = {
r: "0x",
s: "0x",
_vs: "0x",
recoveryParam: 0,
v: 0
};
if (isBytesLike(signature)) {
const bytes = arrayify(signature);
if (bytes.length !== 65) {
logger.throwArgumentError("invalid signature string; must be 65 bytes", "signature", signature);
}
// Get the r, s and v
result.r = hexlify(bytes.slice(0, 32));
result.s = hexlify(bytes.slice(32, 64));
result.v = bytes[64];
// Allow a recid to be used as the v
if (result.v < 27) {
if (result.v === 0 || result.v === 1) {
result.v += 27;
}
else {
logger.throwArgumentError("signature invalid v byte", "signature", signature);
}
}
// Compute recoveryParam from v
result.recoveryParam = 1 - (result.v % 2);
// Compute _vs from recoveryParam and s
if (result.recoveryParam) {
bytes[32] |= 0x80;
}
result._vs = hexlify(bytes.slice(32, 64));
}
else {
result.r = signature.r;
result.s = signature.s;
result.v = signature.v;
result.recoveryParam = signature.recoveryParam;
result._vs = signature._vs;
// If the _vs is available, use it to populate missing s, v and recoveryParam
// and verify non-missing s, v and recoveryParam
if (result._vs != null) {
const vs = zeroPad(arrayify(result._vs), 32);
result._vs = hexlify(vs);
// Set or check the recid
const recoveryParam = ((vs[0] >= 128) ? 1 : 0);
if (result.recoveryParam == null) {
result.recoveryParam = recoveryParam;
}
else if (result.recoveryParam !== recoveryParam) {
logger.throwArgumentError("signature recoveryParam mismatch _vs", "signature", signature);
}
// Set or check the s
vs[0] &= 0x7f;
const s = hexlify(vs);
if (result.s == null) {
result.s = s;
}
else if (result.s !== s) {
logger.throwArgumentError("signature v mismatch _vs", "signature", signature);
}
}
// Use recid and v to populate each other
if (result.recoveryParam == null) {
if (result.v == null) {
logger.throwArgumentError("signature missing v and recoveryParam", "signature", signature);
}
else {
result.recoveryParam = 1 - (result.v % 2);
}
}
else {
if (result.v == null) {
result.v = 27 + result.recoveryParam;
}
else if (result.recoveryParam !== (1 - (result.v % 2))) {
logger.throwArgumentError("signature recoveryParam mismatch v", "signature", signature);
}
}
if (result.r == null || !isHexString(result.r)) {
logger.throwArgumentError("signature missing or invalid r", "signature", signature);
}
else {
result.r = hexZeroPad(result.r, 32);
}
if (result.s == null || !isHexString(result.s)) {
logger.throwArgumentError("signature missing or invalid s", "signature", signature);
}
else {
result.s = hexZeroPad(result.s, 32);
}
const vs = arrayify(result.s);
if (vs[0] >= 128) {
logger.throwArgumentError("signature s out of range", "signature", signature);
}
if (result.recoveryParam) {
vs[0] |= 0x80;
}
const _vs = hexlify(vs);
if (result._vs) {
if (!isHexString(result._vs)) {
logger.throwArgumentError("signature invalid _vs", "signature", signature);
}
result._vs = hexZeroPad(result._vs, 32);
}
// Set or check the _vs
if (result._vs == null) {
result._vs = _vs;
}
else if (result._vs !== _vs) {
logger.throwArgumentError("signature _vs mismatch v and s", "signature", signature);
}
}
return result;
}
export function joinSignature(signature) {
signature = splitSignature(signature);
return hexlify(concat([
signature.r,
signature.s,
(signature.recoveryParam ? "0x1c" : "0x1b")
]));
}
//# sourceMappingURL=index.js.map
-4
View File
@@ -1,4 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "bytes/5.0.5";
//# sourceMappingURL=_version.js.map
-397
View File
@@ -1,397 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
///////////////////////////////
function isHexable(value) {
return !!(value.toHexString);
}
function addSlice(array) {
if (array.slice) {
return array;
}
array.slice = function () {
var args = Array.prototype.slice.call(arguments);
return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));
};
return array;
}
function isBytesLike(value) {
return ((isHexString(value) && !(value.length % 2)) || isBytes(value));
}
exports.isBytesLike = isBytesLike;
function isBytes(value) {
if (value == null) {
return false;
}
if (value.constructor === Uint8Array) {
return true;
}
if (typeof (value) === "string") {
return false;
}
if (value.length == null) {
return false;
}
for (var i = 0; i < value.length; i++) {
var v = value[i];
if (v < 0 || v >= 256 || (v % 1)) {
return false;
}
}
return true;
}
exports.isBytes = isBytes;
function arrayify(value, options) {
if (!options) {
options = {};
}
if (typeof (value) === "number") {
logger.checkSafeUint53(value, "invalid arrayify value");
var result = [];
while (value) {
result.unshift(value & 0xff);
value = parseInt(String(value / 256));
}
if (result.length === 0) {
result.push(0);
}
return addSlice(new Uint8Array(result));
}
if (options.allowMissingPrefix && typeof (value) === "string" && value.substring(0, 2) !== "0x") {
value = "0x" + value;
}
if (isHexable(value)) {
value = value.toHexString();
}
if (isHexString(value)) {
var hex = value.substring(2);
if (hex.length % 2) {
if (options.hexPad === "left") {
hex = "0x0" + hex.substring(2);
}
else if (options.hexPad === "right") {
hex += "0";
}
else {
logger.throwArgumentError("hex data is odd-length", "value", value);
}
}
var result = [];
for (var i = 0; i < hex.length; i += 2) {
result.push(parseInt(hex.substring(i, i + 2), 16));
}
return addSlice(new Uint8Array(result));
}
if (isBytes(value)) {
return addSlice(new Uint8Array(value));
}
return logger.throwArgumentError("invalid arrayify value", "value", value);
}
exports.arrayify = arrayify;
function concat(items) {
var objects = items.map(function (item) { return arrayify(item); });
var length = objects.reduce(function (accum, item) { return (accum + item.length); }, 0);
var result = new Uint8Array(length);
objects.reduce(function (offset, object) {
result.set(object, offset);
return offset + object.length;
}, 0);
return addSlice(result);
}
exports.concat = concat;
function stripZeros(value) {
var result = arrayify(value);
if (result.length === 0) {
return result;
}
// Find the first non-zero entry
var start = 0;
while (start < result.length && result[start] === 0) {
start++;
}
// If we started with zeros, strip them
if (start) {
result = result.slice(start);
}
return result;
}
exports.stripZeros = stripZeros;
function zeroPad(value, length) {
value = arrayify(value);
if (value.length > length) {
logger.throwArgumentError("value out of range", "value", arguments[0]);
}
var result = new Uint8Array(length);
result.set(value, length - value.length);
return addSlice(result);
}
exports.zeroPad = zeroPad;
function isHexString(value, length) {
if (typeof (value) !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) {
return false;
}
if (length && value.length !== 2 + 2 * length) {
return false;
}
return true;
}
exports.isHexString = isHexString;
var HexCharacters = "0123456789abcdef";
function hexlify(value, options) {
if (!options) {
options = {};
}
if (typeof (value) === "number") {
logger.checkSafeUint53(value, "invalid hexlify value");
var hex = "";
while (value) {
hex = HexCharacters[value & 0x0f] + hex;
value = Math.floor(value / 16);
}
if (hex.length) {
if (hex.length % 2) {
hex = "0" + hex;
}
return "0x" + hex;
}
return "0x00";
}
if (options.allowMissingPrefix && typeof (value) === "string" && value.substring(0, 2) !== "0x") {
value = "0x" + value;
}
if (isHexable(value)) {
return value.toHexString();
}
if (isHexString(value)) {
if (value.length % 2) {
if (options.hexPad === "left") {
value = "0x0" + value.substring(2);
}
else if (options.hexPad === "right") {
value += "0";
}
else {
logger.throwArgumentError("hex data is odd-length", "value", value);
}
}
return value.toLowerCase();
}
if (isBytes(value)) {
var result = "0x";
for (var i = 0; i < value.length; i++) {
var v = value[i];
result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];
}
return result;
}
return logger.throwArgumentError("invalid hexlify value", "value", value);
}
exports.hexlify = hexlify;
/*
function unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {
if (typeof(value) === "string" && value.length % 2 && value.substring(0, 2) === "0x") {
return "0x0" + value.substring(2);
}
return value;
}
*/
function hexDataLength(data) {
if (typeof (data) !== "string") {
data = hexlify(data);
}
else if (!isHexString(data) || (data.length % 2)) {
return null;
}
return (data.length - 2) / 2;
}
exports.hexDataLength = hexDataLength;
function hexDataSlice(data, offset, endOffset) {
if (typeof (data) !== "string") {
data = hexlify(data);
}
else if (!isHexString(data) || (data.length % 2)) {
logger.throwArgumentError("invalid hexData", "value", data);
}
offset = 2 + 2 * offset;
if (endOffset != null) {
return "0x" + data.substring(offset, 2 + 2 * endOffset);
}
return "0x" + data.substring(offset);
}
exports.hexDataSlice = hexDataSlice;
function hexConcat(items) {
var result = "0x";
items.forEach(function (item) {
result += hexlify(item).substring(2);
});
return result;
}
exports.hexConcat = hexConcat;
function hexValue(value) {
var trimmed = hexStripZeros(hexlify(value, { hexPad: "left" }));
if (trimmed === "0x") {
return "0x0";
}
return trimmed;
}
exports.hexValue = hexValue;
function hexStripZeros(value) {
if (typeof (value) !== "string") {
value = hexlify(value);
}
if (!isHexString(value)) {
logger.throwArgumentError("invalid hex string", "value", value);
}
value = value.substring(2);
var offset = 0;
while (offset < value.length && value[offset] === "0") {
offset++;
}
return "0x" + value.substring(offset);
}
exports.hexStripZeros = hexStripZeros;
function hexZeroPad(value, length) {
if (typeof (value) !== "string") {
value = hexlify(value);
}
else if (!isHexString(value)) {
logger.throwArgumentError("invalid hex string", "value", value);
}
if (value.length > 2 * length + 2) {
logger.throwArgumentError("value out of range", "value", arguments[1]);
}
while (value.length < 2 * length + 2) {
value = "0x0" + value.substring(2);
}
return value;
}
exports.hexZeroPad = hexZeroPad;
function splitSignature(signature) {
var result = {
r: "0x",
s: "0x",
_vs: "0x",
recoveryParam: 0,
v: 0
};
if (isBytesLike(signature)) {
var bytes = arrayify(signature);
if (bytes.length !== 65) {
logger.throwArgumentError("invalid signature string; must be 65 bytes", "signature", signature);
}
// Get the r, s and v
result.r = hexlify(bytes.slice(0, 32));
result.s = hexlify(bytes.slice(32, 64));
result.v = bytes[64];
// Allow a recid to be used as the v
if (result.v < 27) {
if (result.v === 0 || result.v === 1) {
result.v += 27;
}
else {
logger.throwArgumentError("signature invalid v byte", "signature", signature);
}
}
// Compute recoveryParam from v
result.recoveryParam = 1 - (result.v % 2);
// Compute _vs from recoveryParam and s
if (result.recoveryParam) {
bytes[32] |= 0x80;
}
result._vs = hexlify(bytes.slice(32, 64));
}
else {
result.r = signature.r;
result.s = signature.s;
result.v = signature.v;
result.recoveryParam = signature.recoveryParam;
result._vs = signature._vs;
// If the _vs is available, use it to populate missing s, v and recoveryParam
// and verify non-missing s, v and recoveryParam
if (result._vs != null) {
var vs_1 = zeroPad(arrayify(result._vs), 32);
result._vs = hexlify(vs_1);
// Set or check the recid
var recoveryParam = ((vs_1[0] >= 128) ? 1 : 0);
if (result.recoveryParam == null) {
result.recoveryParam = recoveryParam;
}
else if (result.recoveryParam !== recoveryParam) {
logger.throwArgumentError("signature recoveryParam mismatch _vs", "signature", signature);
}
// Set or check the s
vs_1[0] &= 0x7f;
var s = hexlify(vs_1);
if (result.s == null) {
result.s = s;
}
else if (result.s !== s) {
logger.throwArgumentError("signature v mismatch _vs", "signature", signature);
}
}
// Use recid and v to populate each other
if (result.recoveryParam == null) {
if (result.v == null) {
logger.throwArgumentError("signature missing v and recoveryParam", "signature", signature);
}
else {
result.recoveryParam = 1 - (result.v % 2);
}
}
else {
if (result.v == null) {
result.v = 27 + result.recoveryParam;
}
else if (result.recoveryParam !== (1 - (result.v % 2))) {
logger.throwArgumentError("signature recoveryParam mismatch v", "signature", signature);
}
}
if (result.r == null || !isHexString(result.r)) {
logger.throwArgumentError("signature missing or invalid r", "signature", signature);
}
else {
result.r = hexZeroPad(result.r, 32);
}
if (result.s == null || !isHexString(result.s)) {
logger.throwArgumentError("signature missing or invalid s", "signature", signature);
}
else {
result.s = hexZeroPad(result.s, 32);
}
var vs = arrayify(result.s);
if (vs[0] >= 128) {
logger.throwArgumentError("signature s out of range", "signature", signature);
}
if (result.recoveryParam) {
vs[0] |= 0x80;
}
var _vs = hexlify(vs);
if (result._vs) {
if (!isHexString(result._vs)) {
logger.throwArgumentError("signature invalid _vs", "signature", signature);
}
result._vs = hexZeroPad(result._vs, 32);
}
// Set or check the _vs
if (result._vs == null) {
result._vs = _vs;
}
else if (result._vs !== _vs) {
logger.throwArgumentError("signature _vs mismatch v and s", "signature", signature);
}
}
return result;
}
exports.splitSignature = splitSignature;
function joinSignature(signature) {
signature = splitSignature(signature);
return hexlify(concat([
signature.r,
signature.s,
(signature.recoveryParam ? "0x1c" : "0x1b")
]));
}
exports.joinSignature = joinSignature;
//# sourceMappingURL=index.js.map
-77
View File
@@ -1,77 +0,0 @@
{
"_from": "@ethersproject/bytes@^5.0.4",
"_id": "@ethersproject/bytes@5.0.5",
"_inBundle": false,
"_integrity": "sha512-IEj9HpZB+ACS6cZ+QQMTqmu/cnUK2fYNE6ms/PVxjoBjoxc6HCraLpam1KuRvreMy0i523PLmjN8OYeikRdcUQ==",
"_location": "/@ethersproject/bytes",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "@ethersproject/bytes@^5.0.4",
"name": "@ethersproject/bytes",
"escapedName": "@ethersproject%2fbytes",
"scope": "@ethersproject",
"rawSpec": "^5.0.4",
"saveSpec": null,
"fetchSpec": "^5.0.4"
},
"_requiredBy": [
"/@ethersproject/abi",
"/@ethersproject/abstract-provider",
"/@ethersproject/abstract-signer",
"/@ethersproject/address",
"/@ethersproject/base64",
"/@ethersproject/bignumber",
"/@ethersproject/hash",
"/@ethersproject/keccak256",
"/@ethersproject/rlp",
"/@ethersproject/signing-key",
"/@ethersproject/strings",
"/@ethersproject/transactions",
"/@ethersproject/web"
],
"_resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.5.tgz",
"_shasum": "688b70000e550de0c97a151a21f15b87d7f97d7c",
"_spec": "@ethersproject/bytes@^5.0.4",
"_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\BackendServers\\node_modules\\@ethersproject\\transactions",
"author": {
"name": "Richard Moore",
"email": "me@ricmoo.com"
},
"bugs": {
"url": "https://github.com/ethers-io/ethers.js/issues"
},
"bundleDependencies": false,
"dependencies": {
"@ethersproject/logger": "^5.0.5"
},
"deprecated": false,
"description": "Bytes utility functions for ethers.",
"ethereum": "donations.ethers.eth",
"gitHead": "ffa4a2d0549fe2c606bda3130f4a3f3d788f8dcf",
"homepage": "https://github.com/ethers-io/ethers.js#readme",
"keywords": [
"Ethereum",
"ethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@ethersproject/bytes",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git://github.com/ethers-io/ethers.js.git"
},
"scripts": {
"auto-build": "npm run build -- -w",
"build": "tsc -p ./tsconfig.json",
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0x132538d3d8927299393c28ac01243ebc0e7ea34f5af1feadf23b364745f7c130",
"types": "./lib/index.d.ts",
"version": "5.0.5"
}
-2
View File
@@ -1,2 +0,0 @@
export const version = "constants/5.0.5";
//# sourceMappingURL=_version.js.map
-14
View File
@@ -1,14 +0,0 @@
"use strict";
import { BigNumber } from "@ethersproject/bignumber";
const AddressZero = "0x0000000000000000000000000000000000000000";
const HashZero = "0x0000000000000000000000000000000000000000000000000000000000000000";
// NFKC (composed) // (decomposed)
const EtherSymbol = "\u039e"; // "\uD835\uDF63";
const NegativeOne = BigNumber.from(-1);
const Zero = BigNumber.from(0);
const One = BigNumber.from(1);
const Two = BigNumber.from(2);
const WeiPerEther = BigNumber.from("1000000000000000000");
const MaxUint256 = BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
export { AddressZero, HashZero, EtherSymbol, NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256 };
//# sourceMappingURL=index.js.map
-4
View File
@@ -1,4 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "constants/5.0.5";
//# sourceMappingURL=_version.js.map
-23
View File
@@ -1,23 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var bignumber_1 = require("@ethersproject/bignumber");
var AddressZero = "0x0000000000000000000000000000000000000000";
exports.AddressZero = AddressZero;
var HashZero = "0x0000000000000000000000000000000000000000000000000000000000000000";
exports.HashZero = HashZero;
// NFKC (composed) // (decomposed)
var EtherSymbol = "\u039e"; // "\uD835\uDF63";
exports.EtherSymbol = EtherSymbol;
var NegativeOne = bignumber_1.BigNumber.from(-1);
exports.NegativeOne = NegativeOne;
var Zero = bignumber_1.BigNumber.from(0);
exports.Zero = Zero;
var One = bignumber_1.BigNumber.from(1);
exports.One = One;
var Two = bignumber_1.BigNumber.from(2);
exports.Two = Two;
var WeiPerEther = bignumber_1.BigNumber.from("1000000000000000000");
exports.WeiPerEther = WeiPerEther;
var MaxUint256 = bignumber_1.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
exports.MaxUint256 = MaxUint256;
//# sourceMappingURL=index.js.map
-65
View File
@@ -1,65 +0,0 @@
{
"_from": "@ethersproject/constants@^5.0.4",
"_id": "@ethersproject/constants@5.0.5",
"_inBundle": false,
"_integrity": "sha512-foaQVmxp2+ik9FrLUCtVrLZCj4M3Ibgkqvh+Xw/vFRSerkjVSYePApaVE5essxhoSlF1U9oXfWY09QI2AXtgKA==",
"_location": "/@ethersproject/constants",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "@ethersproject/constants@^5.0.4",
"name": "@ethersproject/constants",
"escapedName": "@ethersproject%2fconstants",
"scope": "@ethersproject",
"rawSpec": "^5.0.4",
"saveSpec": null,
"fetchSpec": "^5.0.4"
},
"_requiredBy": [
"/@ethersproject/abi",
"/@ethersproject/strings",
"/@ethersproject/transactions"
],
"_resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.5.tgz",
"_shasum": "0ed19b002e8404bdf6d135234dc86a7d9bcf9b71",
"_spec": "@ethersproject/constants@^5.0.4",
"_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\BackendServers\\node_modules\\@ethersproject\\transactions",
"author": {
"name": "Richard Moore",
"email": "me@ricmoo.com"
},
"bugs": {
"url": "https://github.com/ethers-io/ethers.js/issues"
},
"bundleDependencies": false,
"dependencies": {
"@ethersproject/bignumber": "^5.0.7"
},
"deprecated": false,
"description": "Common Ethereum constants used for ethers.",
"ethereum": "donations.ethers.eth",
"gitHead": "ffa4a2d0549fe2c606bda3130f4a3f3d788f8dcf",
"homepage": "https://github.com/ethers-io/ethers.js#readme",
"keywords": [
"Ethereum",
"ethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@ethersproject/constants",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git://github.com/ethers-io/ethers.js.git"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0x638edaa4b45c46158073ede9fda2c54d6c60a2f11485e693021c484076970130",
"types": "./lib/index.d.ts",
"version": "5.0.5"
}
-2
View File
@@ -1,2 +0,0 @@
export const version = "hash/5.0.6";
//# sourceMappingURL=_version.js.map
-6
View File
@@ -1,6 +0,0 @@
import { keccak256 } from "@ethersproject/keccak256";
import { toUtf8Bytes } from "@ethersproject/strings";
export function id(text) {
return keccak256(toUtf8Bytes(text));
}
//# sourceMappingURL=id.js.map
-7
View File
@@ -1,7 +0,0 @@
"use strict";
import { id } from "./id";
import { isValidName, namehash } from "./namehash";
import { hashMessage, messagePrefix } from "./message";
import { TypedDataEncoder as _TypedDataEncoder } from "./typed-data";
export { id, namehash, isValidName, messagePrefix, hashMessage, _TypedDataEncoder, };
//# sourceMappingURL=index.js.map
-15
View File
@@ -1,15 +0,0 @@
import { concat } from "@ethersproject/bytes";
import { keccak256 } from "@ethersproject/keccak256";
import { toUtf8Bytes } from "@ethersproject/strings";
export const messagePrefix = "\x19Ethereum Signed Message:\n";
export function hashMessage(message) {
if (typeof (message) === "string") {
message = toUtf8Bytes(message);
}
return keccak256(concat([
toUtf8Bytes(messagePrefix),
toUtf8Bytes(String(message.length)),
message
]));
}
//# sourceMappingURL=message.js.map
-37
View File
@@ -1,37 +0,0 @@
import { concat, hexlify } from "@ethersproject/bytes";
import { nameprep, toUtf8Bytes } from "@ethersproject/strings";
import { keccak256 } from "@ethersproject/keccak256";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
const Zeros = new Uint8Array(32);
Zeros.fill(0);
const Partition = new RegExp("^((.*)\\.)?([^.]+)$");
export function isValidName(name) {
try {
const comps = name.split(".");
for (let i = 0; i < comps.length; i++) {
if (nameprep(comps[i]).length === 0) {
throw new Error("empty");
}
}
return true;
}
catch (error) { }
return false;
}
export function namehash(name) {
/* istanbul ignore if */
if (typeof (name) !== "string") {
logger.throwArgumentError("invalid address - " + String(name), "name", name);
}
let result = Zeros;
while (name.length) {
const partition = name.match(Partition);
const label = toUtf8Bytes(nameprep(partition[3]));
result = keccak256(concat([result, keccak256(label)]));
name = partition[2] || "";
}
return hexlify(result);
}
//# sourceMappingURL=namehash.js.map
-444
View File
@@ -1,444 +0,0 @@
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { getAddress } from "@ethersproject/address";
import { BigNumber } from "@ethersproject/bignumber";
import { arrayify, hexConcat, hexlify, hexValue, hexZeroPad, isHexString } from "@ethersproject/bytes";
import { keccak256 } from "@ethersproject/keccak256";
import { deepCopy, defineReadOnly, shallowCopy } from "@ethersproject/properties";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
import { id } from "./id";
const padding = new Uint8Array(32);
padding.fill(0);
const NegativeOne = BigNumber.from(-1);
const Zero = BigNumber.from(0);
const One = BigNumber.from(1);
const MaxUint256 = BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
function hexPadRight(value) {
const bytes = arrayify(value);
const padOffset = bytes.length % 32;
if (padOffset) {
return hexConcat([bytes, padding.slice(padOffset)]);
}
return hexlify(bytes);
}
const hexTrue = hexZeroPad(One.toHexString(), 32);
const hexFalse = hexZeroPad(Zero.toHexString(), 32);
const domainFieldTypes = {
name: "string",
version: "string",
chainId: "uint256",
verifyingContract: "address",
salt: "bytes32"
};
const domainFieldNames = [
"name", "version", "chainId", "verifyingContract", "salt"
];
function checkString(key) {
return function (value) {
if (typeof (value) !== "string") {
logger.throwArgumentError(`invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);
}
return value;
};
}
const domainChecks = {
name: checkString("name"),
version: checkString("version"),
chainId: function (value) {
try {
return BigNumber.from(value).toString();
}
catch (error) { }
return logger.throwArgumentError(`invalid domain value for "chainId"`, "domain.chainId", value);
},
verifyingContract: function (value) {
try {
return getAddress(value).toLowerCase();
}
catch (error) { }
return logger.throwArgumentError(`invalid domain value "verifyingContract"`, "domain.verifyingContract", value);
},
salt: function (value) {
try {
const bytes = arrayify(value);
if (bytes.length !== 32) {
throw new Error("bad length");
}
return hexlify(bytes);
}
catch (error) { }
return logger.throwArgumentError(`invalid domain value "salt"`, "domain.salt", value);
}
};
function getBaseEncoder(type) {
// intXX and uintXX
{
const match = type.match(/^(u?)int(\d*)$/);
if (match) {
const signed = (match[1] === "");
const width = parseInt(match[2] || "256");
if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {
logger.throwArgumentError("invalid numeric width", "type", type);
}
const boundsUpper = MaxUint256.mask(signed ? (width - 1) : width);
const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne) : Zero;
return function (value) {
const v = BigNumber.from(value);
if (v.lt(boundsLower) || v.gt(boundsUpper)) {
logger.throwArgumentError(`value out-of-bounds for ${type}`, "value", value);
}
return hexZeroPad(v.toTwos(256).toHexString(), 32);
};
}
}
// bytesXX
{
const match = type.match(/^bytes(\d+)$/);
if (match) {
const width = parseInt(match[1]);
if (width === 0 || width > 32 || match[1] !== String(width)) {
logger.throwArgumentError("invalid bytes width", "type", type);
}
return function (value) {
const bytes = arrayify(value);
if (bytes.length !== width) {
logger.throwArgumentError(`invalid length for ${type}`, "value", value);
}
return hexPadRight(value);
};
}
}
switch (type) {
case "address": return function (value) {
return hexZeroPad(getAddress(value), 32);
};
case "bool": return function (value) {
return ((!value) ? hexFalse : hexTrue);
};
case "bytes": return function (value) {
return keccak256(value);
};
case "string": return function (value) {
return id(value);
};
}
return null;
}
function encodeType(name, fields) {
return `${name}(${fields.map(({ name, type }) => (type + " " + name)).join(",")})`;
}
export class TypedDataEncoder {
constructor(types) {
defineReadOnly(this, "types", Object.freeze(deepCopy(types)));
defineReadOnly(this, "_encoderCache", {});
defineReadOnly(this, "_types", {});
// Link struct types to their direct child structs
const links = {};
// Link structs to structs which contain them as a child
const parents = {};
// Link all subtypes within a given struct
const subtypes = {};
Object.keys(types).forEach((type) => {
links[type] = {};
parents[type] = [];
subtypes[type] = {};
});
for (const name in types) {
const uniqueNames = {};
types[name].forEach((field) => {
// Check each field has a unique name
if (uniqueNames[field.name]) {
logger.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, "types", types);
}
uniqueNames[field.name] = true;
// Get the base type (drop any array specifiers)
const baseType = field.type.match(/^([^\x5b]*)(\x5b|$)/)[1];
if (baseType === name) {
logger.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, "types", types);
}
// Is this a base encoding type?
const encoder = getBaseEncoder(baseType);
if (encoder) {
return;
}
if (!parents[baseType]) {
logger.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, "types", types);
}
// Add linkage
parents[baseType].push(name);
links[name][baseType] = true;
});
}
// Deduce the primary type
const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));
if (primaryTypes.length === 0) {
logger.throwArgumentError("missing primary type", "types", types);
}
else if (primaryTypes.length > 1) {
logger.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => (JSON.stringify(t))).join(", ")}`, "types", types);
}
defineReadOnly(this, "primaryType", primaryTypes[0]);
// Check for circular type references
function checkCircular(type, found) {
if (found[type]) {
logger.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, "types", types);
}
found[type] = true;
Object.keys(links[type]).forEach((child) => {
if (!parents[child]) {
return;
}
// Recursively check children
checkCircular(child, found);
// Mark all ancestors as having this decendant
Object.keys(found).forEach((subtype) => {
subtypes[subtype][child] = true;
});
});
delete found[type];
}
checkCircular(this.primaryType, {});
// Compute each fully describe type
for (const name in subtypes) {
const st = Object.keys(subtypes[name]);
st.sort();
this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join("");
}
}
getEncoder(type) {
let encoder = this._encoderCache[type];
if (!encoder) {
encoder = this._encoderCache[type] = this._getEncoder(type);
}
return encoder;
}
_getEncoder(type) {
// Basic encoder type (address, bool, uint256, etc)
{
const encoder = getBaseEncoder(type);
if (encoder) {
return encoder;
}
}
// Array
const match = type.match(/^(.*)(\x5b(\d*)\x5d)$/);
if (match) {
const subtype = match[1];
const subEncoder = this.getEncoder(subtype);
const length = parseInt(match[3]);
return (value) => {
if (length >= 0 && value.length !== length) {
logger.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value);
}
let result = value.map(subEncoder);
if (this._types[subtype]) {
result = result.map(keccak256);
}
return keccak256(hexConcat(result));
};
}
// Struct
const fields = this.types[type];
if (fields) {
const encodedType = id(this._types[type]);
return (value) => {
const values = fields.map(({ name, type }) => {
const result = this.getEncoder(type)(value[name]);
if (this._types[type]) {
return keccak256(result);
}
return result;
});
values.unshift(encodedType);
return hexConcat(values);
};
}
return logger.throwArgumentError(`unknown type: ${type}`, "type", type);
}
encodeType(name) {
const result = this._types[name];
if (!result) {
logger.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, "name", name);
}
return result;
}
encodeData(type, value) {
return this.getEncoder(type)(value);
}
hashStruct(name, value) {
return keccak256(this.encodeData(name, value));
}
encode(value) {
return this.encodeData(this.primaryType, value);
}
hash(value) {
return this.hashStruct(this.primaryType, value);
}
_visit(type, value, callback) {
// Basic encoder type (address, bool, uint256, etc)
{
const encoder = getBaseEncoder(type);
if (encoder) {
return callback(type, value);
}
}
// Array
const match = type.match(/^(.*)(\x5b(\d*)\x5d)$/);
if (match) {
const subtype = match[1];
const length = parseInt(match[3]);
if (length >= 0 && value.length !== length) {
logger.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value);
}
return value.map((v) => this._visit(subtype, v, callback));
}
// Struct
const fields = this.types[type];
if (fields) {
return fields.reduce((accum, { name, type }) => {
accum[name] = this._visit(type, value[name], callback);
return accum;
}, {});
}
return logger.throwArgumentError(`unknown type: ${type}`, "type", type);
}
visit(value, callback) {
return this._visit(this.primaryType, value, callback);
}
static from(types) {
return new TypedDataEncoder(types);
}
static getPrimaryType(types) {
return TypedDataEncoder.from(types).primaryType;
}
static hashStruct(name, types, value) {
return TypedDataEncoder.from(types).hashStruct(name, value);
}
static hashDomain(domain) {
const domainFields = [];
for (const name in domain) {
const type = domainFieldTypes[name];
if (!type) {
logger.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, "domain", domain);
}
domainFields.push({ name, type });
}
domainFields.sort((a, b) => {
return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);
});
return TypedDataEncoder.hashStruct("EIP712Domain", { EIP712Domain: domainFields }, domain);
}
static encode(domain, types, value) {
return hexConcat([
"0x1901",
TypedDataEncoder.hashDomain(domain),
TypedDataEncoder.from(types).hash(value)
]);
}
static hash(domain, types, value) {
return keccak256(TypedDataEncoder.encode(domain, types, value));
}
// Replaces all address types with ENS names with their looked up address
static resolveNames(domain, types, value, resolveName) {
return __awaiter(this, void 0, void 0, function* () {
// Make a copy to isolate it from the object passed in
domain = shallowCopy(domain);
// Look up all ENS names
const ensCache = {};
// Do we need to look up the domain's verifyingContract?
if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {
ensCache[domain.verifyingContract] = "0x";
}
// We are going to use the encoder to visit all the base values
const encoder = TypedDataEncoder.from(types);
// Get a list of all the addresses
encoder.visit(value, (type, value) => {
if (type === "address" && !isHexString(value, 20)) {
ensCache[value] = "0x";
}
return value;
});
// Lookup each name
for (const name in ensCache) {
ensCache[name] = yield resolveName(name);
}
// Replace the domain verifyingContract if needed
if (domain.verifyingContract && ensCache[domain.verifyingContract]) {
domain.verifyingContract = ensCache[domain.verifyingContract];
}
// Replace all ENS names with their address
value = encoder.visit(value, (type, value) => {
if (type === "address" && ensCache[value]) {
return ensCache[value];
}
return value;
});
return { domain, value };
});
}
static getPayload(domain, types, value) {
// Validate the domain fields
TypedDataEncoder.hashDomain(domain);
// Derive the EIP712Domain Struct reference type
const domainValues = {};
const domainTypes = [];
domainFieldNames.forEach((name) => {
const value = domain[name];
if (value == null) {
return;
}
domainValues[name] = domainChecks[name](value);
domainTypes.push({ name, type: domainFieldTypes[name] });
});
const encoder = TypedDataEncoder.from(types);
const typesWithDomain = shallowCopy(types);
if (typesWithDomain.EIP712Domain) {
typesWithDomain.EIP712Domain = domainTypes;
}
// Validate the data structures and types
encoder.encode(value);
return {
types: typesWithDomain,
domain: domainValues,
primaryType: encoder.primaryType,
message: encoder.visit(value, (type, value) => {
// bytes
if (type.match(/^bytes(\d*)/)) {
return hexlify(arrayify(value));
}
// uint or int
if (type.match(/^u?int/)) {
let prefix = "";
let v = BigNumber.from(value);
if (v.isNegative()) {
prefix = "-";
v = v.mul(-1);
}
return prefix + hexValue(v.toHexString());
}
switch (type) {
case "address":
return value.toLowerCase();
case "bool":
return !!value;
case "string":
if (typeof (value) !== "string") {
logger.throwArgumentError(`invalid string`, "value", value);
}
return value;
}
return logger.throwArgumentError("unsupported type", "type", type);
})
};
}
}
//# sourceMappingURL=typed-data.js.map
-4
View File
@@ -1,4 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "hash/5.0.6";
//# sourceMappingURL=_version.js.map
-9
View File
@@ -1,9 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var keccak256_1 = require("@ethersproject/keccak256");
var strings_1 = require("@ethersproject/strings");
function id(text) {
return keccak256_1.keccak256(strings_1.toUtf8Bytes(text));
}
exports.id = id;
//# sourceMappingURL=id.js.map
-13
View File
@@ -1,13 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var id_1 = require("./id");
exports.id = id_1.id;
var namehash_1 = require("./namehash");
exports.isValidName = namehash_1.isValidName;
exports.namehash = namehash_1.namehash;
var message_1 = require("./message");
exports.hashMessage = message_1.hashMessage;
exports.messagePrefix = message_1.messagePrefix;
var typed_data_1 = require("./typed-data");
exports._TypedDataEncoder = typed_data_1.TypedDataEncoder;
//# sourceMappingURL=index.js.map
-18
View File
@@ -1,18 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var bytes_1 = require("@ethersproject/bytes");
var keccak256_1 = require("@ethersproject/keccak256");
var strings_1 = require("@ethersproject/strings");
exports.messagePrefix = "\x19Ethereum Signed Message:\n";
function hashMessage(message) {
if (typeof (message) === "string") {
message = strings_1.toUtf8Bytes(message);
}
return keccak256_1.keccak256(bytes_1.concat([
strings_1.toUtf8Bytes(exports.messagePrefix),
strings_1.toUtf8Bytes(String(message.length)),
message
]));
}
exports.hashMessage = hashMessage;
//# sourceMappingURL=message.js.map
-41
View File
@@ -1,41 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var bytes_1 = require("@ethersproject/bytes");
var strings_1 = require("@ethersproject/strings");
var keccak256_1 = require("@ethersproject/keccak256");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
var Zeros = new Uint8Array(32);
Zeros.fill(0);
var Partition = new RegExp("^((.*)\\.)?([^.]+)$");
function isValidName(name) {
try {
var comps = name.split(".");
for (var i = 0; i < comps.length; i++) {
if (strings_1.nameprep(comps[i]).length === 0) {
throw new Error("empty");
}
}
return true;
}
catch (error) { }
return false;
}
exports.isValidName = isValidName;
function namehash(name) {
/* istanbul ignore if */
if (typeof (name) !== "string") {
logger.throwArgumentError("invalid address - " + String(name), "name", name);
}
var result = Zeros;
while (name.length) {
var partition = name.match(Partition);
var label = strings_1.toUtf8Bytes(strings_1.nameprep(partition[3]));
result = keccak256_1.keccak256(bytes_1.concat([result, keccak256_1.keccak256(label)]));
name = partition[2] || "";
}
return bytes_1.hexlify(result);
}
exports.namehash = namehash;
//# sourceMappingURL=namehash.js.map
-503
View File
@@ -1,503 +0,0 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
var address_1 = require("@ethersproject/address");
var bignumber_1 = require("@ethersproject/bignumber");
var bytes_1 = require("@ethersproject/bytes");
var keccak256_1 = require("@ethersproject/keccak256");
var properties_1 = require("@ethersproject/properties");
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
var id_1 = require("./id");
var padding = new Uint8Array(32);
padding.fill(0);
var NegativeOne = bignumber_1.BigNumber.from(-1);
var Zero = bignumber_1.BigNumber.from(0);
var One = bignumber_1.BigNumber.from(1);
var MaxUint256 = bignumber_1.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
function hexPadRight(value) {
var bytes = bytes_1.arrayify(value);
var padOffset = bytes.length % 32;
if (padOffset) {
return bytes_1.hexConcat([bytes, padding.slice(padOffset)]);
}
return bytes_1.hexlify(bytes);
}
var hexTrue = bytes_1.hexZeroPad(One.toHexString(), 32);
var hexFalse = bytes_1.hexZeroPad(Zero.toHexString(), 32);
var domainFieldTypes = {
name: "string",
version: "string",
chainId: "uint256",
verifyingContract: "address",
salt: "bytes32"
};
var domainFieldNames = [
"name", "version", "chainId", "verifyingContract", "salt"
];
function checkString(key) {
return function (value) {
if (typeof (value) !== "string") {
logger.throwArgumentError("invalid domain value for " + JSON.stringify(key), "domain." + key, value);
}
return value;
};
}
var domainChecks = {
name: checkString("name"),
version: checkString("version"),
chainId: function (value) {
try {
return bignumber_1.BigNumber.from(value).toString();
}
catch (error) { }
return logger.throwArgumentError("invalid domain value for \"chainId\"", "domain.chainId", value);
},
verifyingContract: function (value) {
try {
return address_1.getAddress(value).toLowerCase();
}
catch (error) { }
return logger.throwArgumentError("invalid domain value \"verifyingContract\"", "domain.verifyingContract", value);
},
salt: function (value) {
try {
var bytes = bytes_1.arrayify(value);
if (bytes.length !== 32) {
throw new Error("bad length");
}
return bytes_1.hexlify(bytes);
}
catch (error) { }
return logger.throwArgumentError("invalid domain value \"salt\"", "domain.salt", value);
}
};
function getBaseEncoder(type) {
// intXX and uintXX
{
var match = type.match(/^(u?)int(\d*)$/);
if (match) {
var signed = (match[1] === "");
var width = parseInt(match[2] || "256");
if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {
logger.throwArgumentError("invalid numeric width", "type", type);
}
var boundsUpper_1 = MaxUint256.mask(signed ? (width - 1) : width);
var boundsLower_1 = signed ? boundsUpper_1.add(One).mul(NegativeOne) : Zero;
return function (value) {
var v = bignumber_1.BigNumber.from(value);
if (v.lt(boundsLower_1) || v.gt(boundsUpper_1)) {
logger.throwArgumentError("value out-of-bounds for " + type, "value", value);
}
return bytes_1.hexZeroPad(v.toTwos(256).toHexString(), 32);
};
}
}
// bytesXX
{
var match = type.match(/^bytes(\d+)$/);
if (match) {
var width_1 = parseInt(match[1]);
if (width_1 === 0 || width_1 > 32 || match[1] !== String(width_1)) {
logger.throwArgumentError("invalid bytes width", "type", type);
}
return function (value) {
var bytes = bytes_1.arrayify(value);
if (bytes.length !== width_1) {
logger.throwArgumentError("invalid length for " + type, "value", value);
}
return hexPadRight(value);
};
}
}
switch (type) {
case "address": return function (value) {
return bytes_1.hexZeroPad(address_1.getAddress(value), 32);
};
case "bool": return function (value) {
return ((!value) ? hexFalse : hexTrue);
};
case "bytes": return function (value) {
return keccak256_1.keccak256(value);
};
case "string": return function (value) {
return id_1.id(value);
};
}
return null;
}
function encodeType(name, fields) {
return name + "(" + fields.map(function (_a) {
var name = _a.name, type = _a.type;
return (type + " " + name);
}).join(",") + ")";
}
var TypedDataEncoder = /** @class */ (function () {
function TypedDataEncoder(types) {
properties_1.defineReadOnly(this, "types", Object.freeze(properties_1.deepCopy(types)));
properties_1.defineReadOnly(this, "_encoderCache", {});
properties_1.defineReadOnly(this, "_types", {});
// Link struct types to their direct child structs
var links = {};
// Link structs to structs which contain them as a child
var parents = {};
// Link all subtypes within a given struct
var subtypes = {};
Object.keys(types).forEach(function (type) {
links[type] = {};
parents[type] = [];
subtypes[type] = {};
});
var _loop_1 = function (name_1) {
var uniqueNames = {};
types[name_1].forEach(function (field) {
// Check each field has a unique name
if (uniqueNames[field.name]) {
logger.throwArgumentError("duplicate variable name " + JSON.stringify(field.name) + " in " + JSON.stringify(name_1), "types", types);
}
uniqueNames[field.name] = true;
// Get the base type (drop any array specifiers)
var baseType = field.type.match(/^([^\x5b]*)(\x5b|$)/)[1];
if (baseType === name_1) {
logger.throwArgumentError("circular type reference to " + JSON.stringify(baseType), "types", types);
}
// Is this a base encoding type?
var encoder = getBaseEncoder(baseType);
if (encoder) {
return;
}
if (!parents[baseType]) {
logger.throwArgumentError("unknown type " + JSON.stringify(baseType), "types", types);
}
// Add linkage
parents[baseType].push(name_1);
links[name_1][baseType] = true;
});
};
for (var name_1 in types) {
_loop_1(name_1);
}
// Deduce the primary type
var primaryTypes = Object.keys(parents).filter(function (n) { return (parents[n].length === 0); });
if (primaryTypes.length === 0) {
logger.throwArgumentError("missing primary type", "types", types);
}
else if (primaryTypes.length > 1) {
logger.throwArgumentError("ambiguous primary types or unused types: " + primaryTypes.map(function (t) { return (JSON.stringify(t)); }).join(", "), "types", types);
}
properties_1.defineReadOnly(this, "primaryType", primaryTypes[0]);
// Check for circular type references
function checkCircular(type, found) {
if (found[type]) {
logger.throwArgumentError("circular type reference to " + JSON.stringify(type), "types", types);
}
found[type] = true;
Object.keys(links[type]).forEach(function (child) {
if (!parents[child]) {
return;
}
// Recursively check children
checkCircular(child, found);
// Mark all ancestors as having this decendant
Object.keys(found).forEach(function (subtype) {
subtypes[subtype][child] = true;
});
});
delete found[type];
}
checkCircular(this.primaryType, {});
// Compute each fully describe type
for (var name_2 in subtypes) {
var st = Object.keys(subtypes[name_2]);
st.sort();
this._types[name_2] = encodeType(name_2, types[name_2]) + st.map(function (t) { return encodeType(t, types[t]); }).join("");
}
}
TypedDataEncoder.prototype.getEncoder = function (type) {
var encoder = this._encoderCache[type];
if (!encoder) {
encoder = this._encoderCache[type] = this._getEncoder(type);
}
return encoder;
};
TypedDataEncoder.prototype._getEncoder = function (type) {
var _this = this;
// Basic encoder type (address, bool, uint256, etc)
{
var encoder = getBaseEncoder(type);
if (encoder) {
return encoder;
}
}
// Array
var match = type.match(/^(.*)(\x5b(\d*)\x5d)$/);
if (match) {
var subtype_1 = match[1];
var subEncoder_1 = this.getEncoder(subtype_1);
var length_1 = parseInt(match[3]);
return function (value) {
if (length_1 >= 0 && value.length !== length_1) {
logger.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value);
}
var result = value.map(subEncoder_1);
if (_this._types[subtype_1]) {
result = result.map(keccak256_1.keccak256);
}
return keccak256_1.keccak256(bytes_1.hexConcat(result));
};
}
// Struct
var fields = this.types[type];
if (fields) {
var encodedType_1 = id_1.id(this._types[type]);
return function (value) {
var values = fields.map(function (_a) {
var name = _a.name, type = _a.type;
var result = _this.getEncoder(type)(value[name]);
if (_this._types[type]) {
return keccak256_1.keccak256(result);
}
return result;
});
values.unshift(encodedType_1);
return bytes_1.hexConcat(values);
};
}
return logger.throwArgumentError("unknown type: " + type, "type", type);
};
TypedDataEncoder.prototype.encodeType = function (name) {
var result = this._types[name];
if (!result) {
logger.throwArgumentError("unknown type: " + JSON.stringify(name), "name", name);
}
return result;
};
TypedDataEncoder.prototype.encodeData = function (type, value) {
return this.getEncoder(type)(value);
};
TypedDataEncoder.prototype.hashStruct = function (name, value) {
return keccak256_1.keccak256(this.encodeData(name, value));
};
TypedDataEncoder.prototype.encode = function (value) {
return this.encodeData(this.primaryType, value);
};
TypedDataEncoder.prototype.hash = function (value) {
return this.hashStruct(this.primaryType, value);
};
TypedDataEncoder.prototype._visit = function (type, value, callback) {
var _this = this;
// Basic encoder type (address, bool, uint256, etc)
{
var encoder = getBaseEncoder(type);
if (encoder) {
return callback(type, value);
}
}
// Array
var match = type.match(/^(.*)(\x5b(\d*)\x5d)$/);
if (match) {
var subtype_2 = match[1];
var length_2 = parseInt(match[3]);
if (length_2 >= 0 && value.length !== length_2) {
logger.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value);
}
return value.map(function (v) { return _this._visit(subtype_2, v, callback); });
}
// Struct
var fields = this.types[type];
if (fields) {
return fields.reduce(function (accum, _a) {
var name = _a.name, type = _a.type;
accum[name] = _this._visit(type, value[name], callback);
return accum;
}, {});
}
return logger.throwArgumentError("unknown type: " + type, "type", type);
};
TypedDataEncoder.prototype.visit = function (value, callback) {
return this._visit(this.primaryType, value, callback);
};
TypedDataEncoder.from = function (types) {
return new TypedDataEncoder(types);
};
TypedDataEncoder.getPrimaryType = function (types) {
return TypedDataEncoder.from(types).primaryType;
};
TypedDataEncoder.hashStruct = function (name, types, value) {
return TypedDataEncoder.from(types).hashStruct(name, value);
};
TypedDataEncoder.hashDomain = function (domain) {
var domainFields = [];
for (var name_3 in domain) {
var type = domainFieldTypes[name_3];
if (!type) {
logger.throwArgumentError("invalid typed-data domain key: " + JSON.stringify(name_3), "domain", domain);
}
domainFields.push({ name: name_3, type: type });
}
domainFields.sort(function (a, b) {
return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);
});
return TypedDataEncoder.hashStruct("EIP712Domain", { EIP712Domain: domainFields }, domain);
};
TypedDataEncoder.encode = function (domain, types, value) {
return bytes_1.hexConcat([
"0x1901",
TypedDataEncoder.hashDomain(domain),
TypedDataEncoder.from(types).hash(value)
]);
};
TypedDataEncoder.hash = function (domain, types, value) {
return keccak256_1.keccak256(TypedDataEncoder.encode(domain, types, value));
};
// Replaces all address types with ENS names with their looked up address
TypedDataEncoder.resolveNames = function (domain, types, value, resolveName) {
return __awaiter(this, void 0, void 0, function () {
var ensCache, encoder, _a, _b, _i, name_4, _c, _d;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
// Make a copy to isolate it from the object passed in
domain = properties_1.shallowCopy(domain);
ensCache = {};
// Do we need to look up the domain's verifyingContract?
if (domain.verifyingContract && !bytes_1.isHexString(domain.verifyingContract, 20)) {
ensCache[domain.verifyingContract] = "0x";
}
encoder = TypedDataEncoder.from(types);
// Get a list of all the addresses
encoder.visit(value, function (type, value) {
if (type === "address" && !bytes_1.isHexString(value, 20)) {
ensCache[value] = "0x";
}
return value;
});
_a = [];
for (_b in ensCache)
_a.push(_b);
_i = 0;
_e.label = 1;
case 1:
if (!(_i < _a.length)) return [3 /*break*/, 4];
name_4 = _a[_i];
_c = ensCache;
_d = name_4;
return [4 /*yield*/, resolveName(name_4)];
case 2:
_c[_d] = _e.sent();
_e.label = 3;
case 3:
_i++;
return [3 /*break*/, 1];
case 4:
// Replace the domain verifyingContract if needed
if (domain.verifyingContract && ensCache[domain.verifyingContract]) {
domain.verifyingContract = ensCache[domain.verifyingContract];
}
// Replace all ENS names with their address
value = encoder.visit(value, function (type, value) {
if (type === "address" && ensCache[value]) {
return ensCache[value];
}
return value;
});
return [2 /*return*/, { domain: domain, value: value }];
}
});
});
};
TypedDataEncoder.getPayload = function (domain, types, value) {
// Validate the domain fields
TypedDataEncoder.hashDomain(domain);
// Derive the EIP712Domain Struct reference type
var domainValues = {};
var domainTypes = [];
domainFieldNames.forEach(function (name) {
var value = domain[name];
if (value == null) {
return;
}
domainValues[name] = domainChecks[name](value);
domainTypes.push({ name: name, type: domainFieldTypes[name] });
});
var encoder = TypedDataEncoder.from(types);
var typesWithDomain = properties_1.shallowCopy(types);
if (typesWithDomain.EIP712Domain) {
typesWithDomain.EIP712Domain = domainTypes;
}
// Validate the data structures and types
encoder.encode(value);
return {
types: typesWithDomain,
domain: domainValues,
primaryType: encoder.primaryType,
message: encoder.visit(value, function (type, value) {
// bytes
if (type.match(/^bytes(\d*)/)) {
return bytes_1.hexlify(bytes_1.arrayify(value));
}
// uint or int
if (type.match(/^u?int/)) {
var prefix = "";
var v = bignumber_1.BigNumber.from(value);
if (v.isNegative()) {
prefix = "-";
v = v.mul(-1);
}
return prefix + bytes_1.hexValue(v.toHexString());
}
switch (type) {
case "address":
return value.toLowerCase();
case "bool":
return !!value;
case "string":
if (typeof (value) !== "string") {
logger.throwArgumentError("invalid string", "value", value);
}
return value;
}
return logger.throwArgumentError("unsupported type", "type", type);
})
};
};
return TypedDataEncoder;
}());
exports.TypedDataEncoder = TypedDataEncoder;
//# sourceMappingURL=typed-data.js.map
-41
View File
@@ -1,41 +0,0 @@
{
"author": "Richard Moore <me@ricmoo.com>",
"dependencies": {
"@ethersproject/abstract-signer": "^5.0.6",
"@ethersproject/address": "^5.0.5",
"@ethersproject/bignumber": "^5.0.8",
"@ethersproject/bytes": "^5.0.4",
"@ethersproject/keccak256": "^5.0.3",
"@ethersproject/logger": "^5.0.5",
"@ethersproject/properties": "^5.0.4",
"@ethersproject/strings": "^5.0.4"
},
"description": "Hash utility functions for Ethereum.",
"ethereum": "donations.ethers.eth",
"gitHead": "86146650d83865d83b10867e9592923eada5d7cc",
"keywords": [
"Ethereum",
"ethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@ethersproject/hash",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "git://github.com/ethers-io/ethers.js.git"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0xd3ced44284f7527cca27da2835c7eaeb117480dc6d459415ece6a672679cd538",
"types": "./lib/index.d.ts",
"version": "5.0.6"
,"_resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.6.tgz"
,"_integrity": "sha512-Gvh57v6BWhwnud6l7tMfQm32PRQ2DYx2WaAAQmAxAfYvmzUkpQCBstnGeNMXIL8/2wdkvcB2u+WZRWaZtsFuUQ=="
,"_from": "@ethersproject/hash@>=5.0.0-beta.128"
}
-2
View File
@@ -1,2 +0,0 @@
export const version = "keccak256/5.0.4";
//# sourceMappingURL=_version.js.map
-7
View File
@@ -1,7 +0,0 @@
"use strict";
import sha3 from "js-sha3";
import { arrayify } from "@ethersproject/bytes";
export function keccak256(data) {
return '0x' + sha3.keccak_256(arrayify(data));
}
//# sourceMappingURL=index.js.map
Loaded 100 of 18841 files, more files were not shown because too many files have changed in this diff. Show more