From ee8403e39b9d1f5a7153cd7712e3c6464b558104 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Thu, 16 Sep 2021 11:34:22 +0200 Subject: [PATCH] Task Server running with all the requires at root --- DesktopRoot.js | 2 + NetworkRoot.js | 2 +- Platform/PlatformApp.js | 2 +- PlatformRoot.js | 2 + .../SA/Utilities/FilesAndDirectories.js | 8 +- .../API-Data-Fetcher-Bot/FetchingProcess.js | 2 +- .../Exchange-Raw-Data/HistoricOHLCVs.js | 4 +- .../Sensor-Bot/Webhooks/CheckWebhook.js | 2 +- .../Trading-Bot/Announcements/DiscordBot.js | 2 +- .../Trading-Bot/Announcements/SlackBot.js | 2 +- .../Trading-Bot/Announcements/TelegramBot.js | 4 +- .../Low-Frequency-Trading/APIs/ExchangeAPI.js | 2 +- .../TS/Task-Modules/EventServerClient.js | 2 +- .../TS/Task-Modules/FileStorage.js | 12 +- TaskServerRoot.js | 8 + package-lock.json | 341 +++++++++++++++++- package.json | 6 + 17 files changed, 363 insertions(+), 40 deletions(-) diff --git a/DesktopRoot.js b/DesktopRoot.js index b12742216..7ab83062a 100644 --- a/DesktopRoot.js +++ b/DesktopRoot.js @@ -41,6 +41,8 @@ exports.newDesktopRoot = function newDesktopRoot() { */ SA.nodeModules = { fs: require('fs'), + util: require('util'), + path: require('path'), web3: require('web3'), ws: require('ws'), open: require('open'), diff --git a/NetworkRoot.js b/NetworkRoot.js index 075a6f6a7..226ab5bcc 100644 --- a/NetworkRoot.js +++ b/NetworkRoot.js @@ -40,7 +40,7 @@ exports.newNetworkRoot = function newNetworkRoot() { Setting up external dependencies. */ SA.nodeModules = { - fs: require('fs'), + fs: SA.nodeModules.fs, nodeFetch: require('node-fetch'), web3: require('web3'), ws: require('ws') diff --git a/Platform/PlatformApp.js b/Platform/PlatformApp.js index 2e254d668..56f39180f 100644 --- a/Platform/PlatformApp.js +++ b/Platform/PlatformApp.js @@ -155,7 +155,7 @@ exports.newPlatformApp = function newPlatformApp() { console.log('Superalgos P2P Network ...................................... Will allow algo-traders to share trading signals with Superalgos users consuming these signals via a mobile app.') console.log('Real-time Trading Signals ................................... Will allow users to emit trading signals and be rewarded with SA Tokens.') console.log('Superalgos Mobile ........................................... Will allow users to consume trading signals for free and autonomously execute trades from their mobile phones.') - console.log('Ethereum Integration ........................................ Will allow mining data from an Ethereum network node, and bring it into the Superalgos workflow.') + console.log('Ethereum Integration ........................................ Will allow mining data from an Ethereum network node, and bring it into the Superalgos workflow. [Looking for an Ethereum dev that would like to continue this line of development.]') console.log('') diff --git a/PlatformRoot.js b/PlatformRoot.js index 4e0743575..814f5c756 100644 --- a/PlatformRoot.js +++ b/PlatformRoot.js @@ -35,6 +35,8 @@ Setting up external dependencies. */ SA.nodeModules = { fs: require('fs'), + util: require('util'), + path: require('path'), ws: require('ws'), web3: require('web3'), ethers: require('ethers'), diff --git a/Projects/Foundations/SA/Utilities/FilesAndDirectories.js b/Projects/Foundations/SA/Utilities/FilesAndDirectories.js index 4ebe10379..f635977ab 100644 --- a/Projects/Foundations/SA/Utilities/FilesAndDirectories.js +++ b/Projects/Foundations/SA/Utilities/FilesAndDirectories.js @@ -21,8 +21,8 @@ exports.newFoundationsUtilitiesFilesAndDirectories = function () { } function getAllFilesInDirectoryAndSubdirectories(dir, callback) { - const { promisify } = require('util'); - const { resolve } = require('path'); + const { promisify } = SA.nodeModules.util + const { resolve } = SA.nodeModules.path; const fs = SA.nodeModules.fs; const readdir = promisify(fs.readdir); const stat = promisify(fs.stat); @@ -66,7 +66,7 @@ exports.newFoundationsUtilitiesFilesAndDirectories = function () { /* Function to create folders of missing folders at any path. */ function mkDirByPathSync(targetDir, { isRelativeToScript = false } = {}) { - const path = require('path') + const path = SA.nodeModules.path targetDir = targetDir.substring(0, targetDir.lastIndexOf('/') + 1); @@ -77,7 +77,7 @@ exports.newFoundationsUtilitiesFilesAndDirectories = function () { return targetDir.split(sep).reduce((parentDir, childDir) => { const curDir = path.resolve(baseDir, parentDir, childDir); try { - const fs = require('fs') + const fs = SA.nodeModules.fs fs.mkdirSync(curDir); } catch (err) { if (err.code === 'EEXIST') { // curDir already exists! diff --git a/Projects/Foundations/TS/Bot-Modules/API-Data-Fetcher-Bot/FetchingProcess.js b/Projects/Foundations/TS/Bot-Modules/API-Data-Fetcher-Bot/FetchingProcess.js index d45ca4cc6..d6f697034 100644 --- a/Projects/Foundations/TS/Bot-Modules/API-Data-Fetcher-Bot/FetchingProcess.js +++ b/Projects/Foundations/TS/Bot-Modules/API-Data-Fetcher-Bot/FetchingProcess.js @@ -582,7 +582,7 @@ exports.newFoundationsBotModulesFetchingProcess = function (processIndex) { Now that we have the endpointNode, the parameters and all the information needed to place the call to the API. */ - const fetch = require('node-fetch') + const fetch = SA.nodeModules.nodeFetch let url = protocol + '://' + hostName + portNumber + diff --git a/Projects/Foundations/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/HistoricOHLCVs.js b/Projects/Foundations/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/HistoricOHLCVs.js index 527115ad3..716d10eff 100644 --- a/Projects/Foundations/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/HistoricOHLCVs.js +++ b/Projects/Foundations/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/HistoricOHLCVs.js @@ -15,12 +15,12 @@ const MAX_OHLCVs_PER_EXECUTION = 10000000 const symbol = TS.projects.foundations.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.baseAsset.referenceParent.config.codeName + '/' + TS.projects.foundations.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.quotedAsset.referenceParent.config.codeName - const ccxt = require('ccxt') + const ccxt = SA.nodeModules.ccxt /* This next is required when using an exchange that uses fetchTrades in place of fetchOHLCVs in order to be able to access the method that builds the OHLCVs, and this method is inside the CCTX library. */ - const ccxtMisc = require('./node_modules/ccxt/js/base/functions/misc') + const ccxtMisc = SA.nodeModules.ccxtMisc let fetchType = "by Time" let lastId diff --git a/Projects/Foundations/TS/Bot-Modules/Sensor-Bot/Webhooks/CheckWebhook.js b/Projects/Foundations/TS/Bot-Modules/Sensor-Bot/Webhooks/CheckWebhook.js index be0254915..23d8753c4 100644 --- a/Projects/Foundations/TS/Bot-Modules/Sensor-Bot/Webhooks/CheckWebhook.js +++ b/Projects/Foundations/TS/Bot-Modules/Sensor-Bot/Webhooks/CheckWebhook.js @@ -88,7 +88,7 @@ exports.newFoundationsBotModulesCheckWebhook = function (processIndex) { function saveMessages() { try { - let http = require('http'); + let http = SA.nodeModules.http let url = 'http://' + global.env.WEB_SERVER_URL + ':' + global.env.CLIENT_HTTP_INTERFACE_PORT + '/Webhook/Fetch-Messages/' + diff --git a/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/DiscordBot.js b/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/DiscordBot.js index 71782ba39..c64b09847 100644 --- a/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/DiscordBot.js +++ b/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/DiscordBot.js @@ -38,7 +38,7 @@ exports.newFoundationsBotModulesDiscordBot = function (processIndex) { function finalize() {} function sendMessage(message) { - const https = require('https') + const https = SA.nodeModules.https try { message = formatMessage(message) diff --git a/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/SlackBot.js b/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/SlackBot.js index 45a991888..09136775a 100644 --- a/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/SlackBot.js +++ b/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/SlackBot.js @@ -38,7 +38,7 @@ exports.newFoundationsBotModulesSlackBot = function (processIndex) { function finalize() {} function sendMessage(message) { - const https = require('https') + const https = SA.nodeModules.https try { message = formatMessage(message) diff --git a/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/TelegramBot.js b/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/TelegramBot.js index 38b51331a..42300bbc7 100644 --- a/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/TelegramBot.js +++ b/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Announcements/TelegramBot.js @@ -22,7 +22,7 @@ exports.newFoundationsBotModulesTelegramBot = function (processIndex) { thisObject.chatId = chatId - const Telegraf = require('telegraf') + const Telegraf = SA.nodeModules.telegraf thisObject.telegramBot = new Telegraf(botToken) thisObject.telegramBot.start((ctx) => ctx.reply('Hi! I am the Telegram Bot that will tell you what happens with your trading session.')) @@ -41,7 +41,7 @@ exports.newFoundationsBotModulesTelegramBot = function (processIndex) { thisObject.telegramBot.launch() - const Telegram = require('telegraf/telegram') + const Telegram = SA.nodeModules.telegram thisObject.telegramAPI = new Telegram(botToken) diff --git a/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/ExchangeAPI.js b/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/ExchangeAPI.js index 3647cbb9c..665015dcc 100644 --- a/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/ExchangeAPI.js +++ b/Projects/Foundations/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/ExchangeAPI.js @@ -16,7 +16,7 @@ let options = {} let exchange - const ccxt = require('ccxt') + const ccxt = SA.nodeModules.ccxt return thisObject; diff --git a/Projects/Foundations/TS/Task-Modules/EventServerClient.js b/Projects/Foundations/TS/Task-Modules/EventServerClient.js index 0680c080b..add819ab3 100644 --- a/Projects/Foundations/TS/Task-Modules/EventServerClient.js +++ b/Projects/Foundations/TS/Task-Modules/EventServerClient.js @@ -18,7 +18,7 @@ let responseWaiters = new Map() let WEB_SOCKETS_CLIENT - const WEB_SOCKET = require('ws') + const WEB_SOCKET = SA.nodeModules.ws if (host === undefined) { host = 'localhost' diff --git a/Projects/Foundations/TS/Task-Modules/FileStorage.js b/Projects/Foundations/TS/Task-Modules/FileStorage.js index a680fd6ab..547b825d5 100644 --- a/Projects/Foundations/TS/Task-Modules/FileStorage.js +++ b/Projects/Foundations/TS/Task-Modules/FileStorage.js @@ -1,6 +1,6 @@ exports.newFileStorage = function newFileStorage(processIndex, host, port) { - const ip = require("ip"); + const ip = SA.nodeModules.ip const MODULE_NAME = 'FileStorage' const MAX_RETRY = 10 const FAST_RETRY_TIME_IN_MILISECONDS = 500 @@ -97,7 +97,7 @@ exports.newFileStorage = function newFileStorage(processIndex, host, port) { /* Here we actually reaad the file. */ if (host === undefined || host === 'localhost' || host === ip.address() || host === '127.0.0.1') { /* We read the file from the local file system. */ - const fs = require('fs') + const fs = SA.nodeModules.fs fs.readFile(fileLocation, onFileRead) } else { /* We read the file via a web server over http */ @@ -169,7 +169,7 @@ exports.newFileStorage = function newFileStorage(processIndex, host, port) { if (host === undefined || host === 'localhost' || host === ip.address() || host === '127.0.0.1') { /* We read the file from the local file system. */ - const fs = require('fs') + const fs = SA.nodeModules.fs fs.readFile(fileLocation + '.Previous.json', onPreviousFileRead) } else { /* We read the file via a web server over http */ @@ -258,7 +258,7 @@ exports.newFileStorage = function newFileStorage(processIndex, host, port) { Here we write the file with a temporary name so as to avoid dirty read from other processes. Then we delete the original file, if exists, and finally we rename the temporary into the original name. */ - const fs = require('fs') + const fs = SA.nodeModules.fs if (noTemp === true) { fs.writeFile(fileLocation, fileContent, onFileWriten) } else { @@ -408,7 +408,7 @@ exports.newFileStorage = function newFileStorage(processIndex, host, port) { logger.write(MODULE_NAME, '[INFO] FileStorage -> deleteTextFile -> fileLocation: ' + fileLocation) - const fs = require('fs') + const fs = SA.nodeModules.fs fs.unlink(fileLocation, onUnlinked) function onUnlinked(err) { @@ -455,7 +455,7 @@ exports.newFileStorage = function newFileStorage(processIndex, host, port) { /* The filePath received is the one that is needed to fetch data from with fs. To do it via http we need to remove the prefix that includes this: ./Data-Storage/ */ filePath = filePath.substring(15, filePath.length) - let http = require('http'); + let http = SA.nodeModules.http let url = 'http://' + host + ':' + port + '/Storage/' + diff --git a/TaskServerRoot.js b/TaskServerRoot.js index 3024aaafe..b1b630122 100644 --- a/TaskServerRoot.js +++ b/TaskServerRoot.js @@ -35,11 +35,19 @@ Setting up external dependencies. */ SA.nodeModules = { fs: require('fs'), + util: require('util'), + path: require('path'), ws: require('ws'), + ip: require('ip'), + telegraf: require('telegraf'), + telegram: require('telegram'), + https: require('https'), + http: require('http'), web3: require('web3'), nodeFetch: require('node-fetch'), http: require('http'), ccxt: require('ccxt'), + ccxtMisc: require('./node_modules/ccxt/js/base/functions/misc'), lookpath: require('lookpath') } diff --git a/package-lock.json b/package-lock.json index 498083f93..7c7ed17e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,11 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@cryptography/aes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@cryptography/aes/-/aes-0.1.1.tgz", + "integrity": "sha512-PcYz4FDGblO6tM2kSC+VzhhK62vml6k6/YAkiWtyPvrgJVfnDRoHGDtKn5UiaRRUrvUTTocBpvc2rRgTCqxjsg==" + }, "@ethereumjs/common": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.4.0.tgz", @@ -603,6 +608,14 @@ "@types/node": "*" } }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -662,15 +675,23 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, + "async-mutex": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz", + "integrity": "sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==", + "requires": { + "tslib": "^2.3.1" + } + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "available-typed-arrays": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", - "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "aws-sign2": { "version": "0.7.0", @@ -713,6 +734,11 @@ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + }, "bignumber.js": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", @@ -755,6 +781,11 @@ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, + "browser-or-node": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", + "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==" + }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -860,6 +891,25 @@ "ieee754": "^1.1.13" } }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, "buffer-to-arraybuffer": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", @@ -1202,11 +1252,44 @@ "randombytes": "^2.0.0" } }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, "dom-walk": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domhandler": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", + "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -1253,22 +1336,28 @@ "once": "^1.4.0" } }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, "es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "version": "1.18.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz", + "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", + "is-regex": "^1.1.4", + "is-string": "^1.0.7", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -1535,6 +1624,11 @@ "strip-hex-prefix": "1.0.0" } }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, "eventemitter3": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", @@ -1711,6 +1805,15 @@ "pump": "^3.0.0" } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -1840,6 +1943,17 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, "http": { "version": "0.0.1-security", "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", @@ -1884,6 +1998,11 @@ "sshpk": "^1.7.0" } }, + "https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", + "integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=" + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -1912,6 +2031,11 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -1927,6 +2051,11 @@ "side-channel": "^1.0.4" } }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -2058,11 +2187,11 @@ } }, "is-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.7.tgz", - "integrity": "sha512-VxlpTBGknhQ3o7YiVjIhdLU6+oD8dPz/79vvvH4F+S/c8608UCVa9fgDpa1kZgFoUST2DCgacc70UszKgzKuvA==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", "requires": { - "available-typed-arrays": "^1.0.4", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-abstract": "^1.18.5", "foreach": "^2.0.5", @@ -2288,6 +2417,11 @@ "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" }, + "module-alias": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz", + "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -2361,6 +2495,14 @@ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" }, + "node-localstorage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-localstorage/-/node-localstorage-2.2.1.tgz", + "integrity": "sha512-vv8fJuOUCCvSPjDjBLlMqYMHob4aGjkmrkaE42/mZr0VT+ZAU10jRF8oTnX9+pgU9/vYJ8P7YT3Vd6ajkmzSCw==", + "requires": { + "write-file-atomic": "^1.1.4" + } + }, "normalize-url": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", @@ -2447,6 +2589,11 @@ "is-wsl": "^2.2.0" } }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -2465,6 +2612,11 @@ "p-finally": "^1.0.0" } }, + "pako": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz", + "integrity": "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==" + }, "parse-asn1": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", @@ -2487,6 +2639,35 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", + "requires": { + "process": "^0.11.1", + "util": "^0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + } + } + } + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -2687,11 +2868,24 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safe-compare": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-compare/-/safe-compare-1.1.4.tgz", + "integrity": "sha512-b9wZ986HHCo/HbKrRpBJb2kqXMK9CEWIE1egeEvZsYn69ay3kdfl9nG3RyOcR+jInTDf7a86WQ1d4VJX7goSSQ==", + "requires": { + "buffer-alloc": "^1.2.0" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sandwich-stream": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sandwich-stream/-/sandwich-stream-2.0.2.tgz", + "integrity": "sha512-jLYV0DORrzY3xaz/S9ydJL6Iz7essZeAfnAavsJ+zsJGZ1MOnsS52yRjU3uF3pJa/lla7+wisp//fxOwOH8SKQ==" + }, "scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", @@ -2826,6 +3020,11 @@ } } }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", @@ -2847,6 +3046,11 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "store2": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.12.0.tgz", + "integrity": "sha512-7t+/wpKLanLzSnQPX8WAcuLCCeuSHoWdQuh9SB3xD0kNOM38DNf+0Oa+wmvxmYueRzkmh6IcdKFtvTa+ecgPDw==" + }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", @@ -2986,6 +3190,77 @@ } } }, + "telegraf": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/telegraf/-/telegraf-4.4.2.tgz", + "integrity": "sha512-OGt9w1LbxYUOsRk3htAavBnL9hqWycmJNiOmS74oARzxKFnYS/MdwW8b5CX9VLCJt537AXkm8/eBNiEYD8E7lQ==", + "requires": { + "abort-controller": "^3.0.0", + "debug": "^4.3.1", + "minimist": "^1.2.5", + "module-alias": "^2.2.2", + "node-fetch": "^2.6.1", + "p-timeout": "^4.1.0", + "safe-compare": "^1.1.4", + "sandwich-stream": "^2.0.2", + "typegram": "^3.4.2" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "p-timeout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", + "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==" + } + } + }, + "telegram": { + "version": "1.8.14", + "resolved": "https://registry.npmjs.org/telegram/-/telegram-1.8.14.tgz", + "integrity": "sha512-gOj6/Ebr0QMv3zufP3n3t2AwO+iJcBd4B+YbWBu9gHRm1OQkuUW+3cpDfLMBnFFGH2/dJGdB9n+uo4qrCRkxgQ==", + "requires": { + "@cryptography/aes": "^0.1.1", + "async-mutex": "^0.3.0", + "big-integer": "^1.6.48", + "browser-or-node": "^1.3.0", + "buffer": "^6.0.3", + "htmlparser2": "^6.1.0", + "mime-types": "^2.1.30", + "node-localstorage": "^2.1.6", + "os-browserify": "^0.3.0", + "pako": "^2.0.3", + "path-browserify": "^1.0.1", + "process": "^0.11.10", + "store2": "^2.12.0", + "ts-custom-error": "^3.2.0", + "ts-mixer": "^5.4.0", + "util": "^0.12.4", + "websocket": "^1.0.33" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", @@ -3010,6 +3285,21 @@ "punycode": "^2.1.1" } }, + "ts-custom-error": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.2.0.tgz", + "integrity": "sha512-cBvC2QjtvJ9JfWLvstVnI45Y46Y5dMxIaG1TDMGAD/R87hpvqFL+7LhvUDhnRCfOnx/xitollFWWvUKKKhbN0A==" + }, + "ts-mixer": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-5.4.1.tgz", + "integrity": "sha512-Zo9HgPCtNouDgJ+LGtrzVOjSg8+7WGQktIKLwAfaNrlOK1mWGlz1ejsAF/YqUEqAGjUTeB5fEg8gH9Aui6w9xA==" + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -3045,6 +3335,11 @@ "is-typedarray": "^1.0.0" } }, + "typegram": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/typegram/-/typegram-3.4.3.tgz", + "integrity": "sha512-pH0TQJzCWM2+7y6yiBoQVNt7PO9ZvAu/lQukVx4sm68FIBBZEBWI+2MzuMcdbwrD5mD5NrEMAyml9N6DupUZag==" + }, "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", @@ -3468,16 +3763,16 @@ } }, "which-typed-array": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.6.tgz", - "integrity": "sha512-DdY984dGD5sQ7Tf+x1CkXzdg85b9uEel6nr4UkFg1LoE9OXv3uRuZhe5CoWdawhGACeFpEZXH8fFLQnDhbpm/Q==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", "requires": { - "available-typed-arrays": "^1.0.4", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "es-abstract": "^1.18.5", "foreach": "^2.0.5", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.6" + "is-typed-array": "^1.1.7" } }, "wrappy": { @@ -3485,6 +3780,16 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, "ws": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.1.tgz", diff --git a/package.json b/package.json index 18923f60c..f42647859 100644 --- a/package.json +++ b/package.json @@ -13,10 +13,16 @@ "ethereumjs-tx": "^2.1.2", "ethers": "^5.4.6", "http": "0.0.1-security", + "https": "^1.0.0", + "ip": "^1.1.5", "lookpath": "^1.2.2", "node-fetch": "^2.6.1", "open": "^8.2.1", + "path": "^0.12.7", "simple-git": "^2.45.1", + "telegraf": "^4.4.2", + "telegram": "^1.8.14", + "util": "^0.12.4", "web3": "^1.5.2", "ws": "^8.2.1" }