From bc8eb88171bb1dc49348aebae73ce78557acf222 Mon Sep 17 00:00:00 2001 From: Alex Ant Date: Mon, 10 Feb 2025 14:41:49 +0500 Subject: [PATCH] init --- .gitignore | 2 + README.md | 81 ++++++++ config.ts | 40 ++++ extractor.ts | 48 +++++ package.json | 18 ++ pnpm-lock.yaml | 518 +++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 707 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 config.ts create mode 100644 extractor.ts create mode 100644 package.json create mode 100644 pnpm-lock.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9fa98e4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +data/* +node_modules/* diff --git a/README.md b/README.md new file mode 100644 index 0000000..5e4a41b --- /dev/null +++ b/README.md @@ -0,0 +1,81 @@ +# Table Extractor + +Этот инструмент извлекает данные из таблиц контрактов EOSIO (Antelope) и сохраняет их в JSON-файлы. Используется `wharfkit` для работы с API, а данные сортируются по окружениям, временным меткам и скопам. + +### Установка +Перед началом работы установите зависимости: + +```sh +pnpm install +``` + +### Конфигурация +Конфигурация находится в файле config.ts. В зависимости от окружения (local, test, dev) автоматически подставляются соответствующие endpoint и scopes. Структура config.ts: + +``` +const env = process.env.NODE_ENV || "local"; + +const envConfigs = { + local: { + endpoint: "https://local-api.coopenomics.world", + scopes: ["local_scope1", "local_scope2"] + }, + test: { + endpoint: "https://test-api.coopenomics.world", + scopes: ["test_scope1", "test_scope2"] + }, + dev: { + endpoint: "https://api.coopenomics.world", + scopes: ["voskhod", "pgrzosdeyuwg", "nzpzufzhcfab", "honruwpdxtty"] + } +}; + +export const config = { + environment: env, + endpoint: envConfigs[env].endpoint, + scopes: envConfigs[env].scopes, + contracts: [ + { + name: "soviet", + tables: [ + { name: "participants" }, + { name: "wallets" }, + { name: "progwallets" }, + { name: "programs" } + ] + } + ] +}; +``` + + +### Запуск +Выберите нужное окружение: + +``` +pnpm extract:local # Запускает экстракцию для локального окружения +pnpm extract:test # Запускает экстракцию для тестового окружения +pnpm extract:prod # Запускает экстракцию для продакшн окружения +``` + +### Структура выходных файлов +Данные сохраняются в ./data/{env}/{timestamp}/{scope}/{contract}-{table}.json. Пример: + +``` +data/dev/2025-02-10T12-30-00Z/ + voskhod/ + soviet-participants.json + soviet-wallets.json + pgrzosdeyuwg/ + soviet-participants.json + soviet-wallets.json +``` + +### Зависимости +@wharfkit/antelope – для работы с API EOSIO +fs-extra – для работы с файловой системой +dotenv – для загрузки переменных окружения + + +### Лицензия +MIT \ No newline at end of file diff --git a/config.ts b/config.ts new file mode 100644 index 0000000..234051e --- /dev/null +++ b/config.ts @@ -0,0 +1,40 @@ +const env = process.env.NODE_ENV || "local"; + +const envConfigs = { + dev: { + endpoint: "http://127.0.0.1:8888", + scopes: ["voskhod"] + }, + test: { + endpoint: "https://api-testnet.coopenomics.world", + scopes: ["voskhod"] + }, + prod: { + endpoint: "https://api.coopenomics.world", + scopes: ["voskhod", "pgrzosdeyuwg", "nzpzufzhcfab", "honruwpdxtty"] + } +}; + +export const config = { + environment: env, + endpoint: envConfigs[env].endpoint, + scopes: envConfigs[env].scopes, + contracts: [ + { + name: "soviet", + tables: [ + { name: "participants" }, + { name: "wallets" }, + { name: "progwallets" }, + { name: "programs" }, + ] + }, + { + name: "fund", + tables: [ + { name: "coopwallet" } + ] + } + ] +}; + diff --git a/extractor.ts b/extractor.ts new file mode 100644 index 0000000..1ba2a58 --- /dev/null +++ b/extractor.ts @@ -0,0 +1,48 @@ +import { APIClient } from "@wharfkit/antelope"; +import fs from "fs-extra"; +import { config } from "./config.js"; +import dotenv from "dotenv"; + +dotenv.config(); + +const client = new APIClient({ url: config.endpoint }); + +async function fetchTable(contract: string, table: string, scope: string) { + const response = await client.v1.chain.get_table_rows({ + code: contract, + table: table, + scope: scope, + json: true, + limit: 10000 + }); + + return response.rows; +} + +async function extractTables() { + const timestamp = new Date().toISOString().replace(/[:.]/g, "-"); + const baseDir = `./data/${config.environment}/${timestamp}`; + await fs.ensureDir(baseDir); + + for (const contract of config.contracts) { + for (const table of contract.tables) { + for (const scope of config.scopes) { + try { + const scopeDir = `${baseDir}/${scope}`; + await fs.ensureDir(scopeDir); + + const data = await fetchTable(contract.name, table.name, scope); + const filePath = `${scopeDir}/${contract.name}-${table.name}.json`; + + await fs.writeJson(filePath, data, { spaces: 2 }); + console.log(`Saved: ${filePath}`); + } catch (error) { + console.error(`Error fetching ${contract.name}/${table.name}/${scope}:`, error); + } + } + } + } +} + +extractTables(); + diff --git a/package.json b/package.json new file mode 100644 index 0000000..4e2a4e5 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "eosio-table-extractor", + "version": "1.0.0", + "type": "module", + "scripts": { + "extract:dev": "NODE_ENV=dev pnpm run extract", + "extract:test": "NODE_ENV=test pnpm run extract", + "extract:prod": "NODE_ENV=prod pnpm run extract", + "extract": "esno extractor.ts" + }, + "dependencies": { + "@wharfkit/antelope": "^1.0.13", + "@wharfkit/session": "^1.4.0", + "dotenv": "^16.0.3", + "esno": "^4.8.0", + "fs-extra": "^11.1.0" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..0399516 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,518 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@wharfkit/antelope': + specifier: ^1.0.13 + version: 1.0.13 + '@wharfkit/session': + specifier: ^1.4.0 + version: 1.4.0 + dotenv: + specifier: ^16.0.3 + version: 16.4.7 + esno: + specifier: ^4.8.0 + version: 4.8.0 + fs-extra: + specifier: ^11.1.0 + version: 11.3.0 + +packages: + + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@wharfkit/abicache@1.2.2': + resolution: {integrity: sha512-yOsYz2qQpQy7Nb8XZj62pZqp8YnmWDqFlrenYksBb9jl+1aWIpFhWd+14VEez4tUAezRH4UWW+w1SX5vhmUY9A==} + + '@wharfkit/account@1.3.0': + resolution: {integrity: sha512-qPW6tH/XkCnWRp1ZpVVHoSYv4S34bt6pAKx6ByCto/w6BvZ3ns+cJionmnxDFMhdAmxnCplD22Va1MeX3iQLJQ==} + + '@wharfkit/antelope@1.0.13': + resolution: {integrity: sha512-f4O5O8+6Bd5BHpMUHTmlWQmlhX5xYb4AfzT2NJweyqIPqQOstm+aInF42AtUhSALDa8fvoY80YZoqwM0L8TUyw==} + + '@wharfkit/common@1.4.2': + resolution: {integrity: sha512-ku3ErhtYcBsxAg/px00q8OoCwS7Z2BVFfp+eazPdQk3hpdEhuyAkojq5TBXdWUYocthI+cJ1EQH87y+Di1JI3w==} + peerDependencies: + '@wharfkit/antelope': ^1.0.0 + + '@wharfkit/contract@1.2.1': + resolution: {integrity: sha512-3UhCtDYCyapfM2nRTrslcbvko864d4MOpxRAz7TR/ZUbRAgZsxhYLFLEv1v23/SU+vsFzAHNBmvzkLEG0OLaHQ==} + + '@wharfkit/resources@1.3.1': + resolution: {integrity: sha512-XgL/yiwcJia8chYySt2dBOxa4BRKPqMeNxaZFvvzLgBI3s7m6MUXlXpZSeBvaQH+dr9D9nlBbmgP7PCBrJITIg==} + + '@wharfkit/session@1.4.0': + resolution: {integrity: sha512-U+K9eWbYzFeDshYwgrhyNoF47kYToKFpTe6xFAwaJO+2w0kIkP0vtJFl7ygd06muh7Hu3K1BqrZ3j6+FyyuIyA==} + + '@wharfkit/signing-request@3.2.0': + resolution: {integrity: sha512-rIMzqwAKA5vb09+1BI+9fUXbj73JIkYcD1XT/Tom+k/+bqi51JcmC0trjCOjTUOK9UYDabpxYFixrf1ZvQymKw==} + + '@wharfkit/token@1.1.2': + resolution: {integrity: sha512-LYAGB7LnE3hxwjNsYYwpxbJ8APi0Y8pmh7i1SeKv13HaPVjuHisTnuPxJm3ndwU7pX9GT3hPyo/By0l3CEuLfw==} + + bn.js@4.12.1: + resolution: {integrity: sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + + elliptic@6.6.1: + resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + esno@4.8.0: + resolution: {integrity: sha512-acMtooReAQGzLU0zcuEDHa8S62meh5aIyi8jboYxyvAePdmuWx2Mpwmt0xjwO0bs9/SXf+dvXJ0QJoDWw814Iw==} + hasBin: true + + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + js-big-decimal@2.2.0: + resolution: {integrity: sha512-qJFDTcgBGvuPzsck0jNm1puKvJQ3AL8J3bIyrvF1KfsbljOVj8N/o9Kbr8RXlBx1J8aapcRpMCiG6h1l6QgYhQ==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + engines: {node: '>=18.0.0'} + hasBin: true + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + +snapshots: + + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-x64@0.23.1': + optional: true + + '@wharfkit/abicache@1.2.2': + dependencies: + '@wharfkit/antelope': 1.0.13 + '@wharfkit/signing-request': 3.2.0 + pako: 2.1.0 + tslib: 2.8.1 + + '@wharfkit/account@1.3.0': + dependencies: + '@wharfkit/antelope': 1.0.13 + '@wharfkit/common': 1.4.2(@wharfkit/antelope@1.0.13) + '@wharfkit/contract': 1.2.1 + '@wharfkit/resources': 1.3.1 + '@wharfkit/token': 1.1.2 + tslib: 2.8.1 + + '@wharfkit/antelope@1.0.13': + dependencies: + bn.js: 4.12.1 + brorand: 1.1.0 + elliptic: 6.6.1 + hash.js: 1.1.7 + pako: 2.1.0 + tslib: 2.8.1 + + '@wharfkit/common@1.4.2(@wharfkit/antelope@1.0.13)': + dependencies: + '@wharfkit/antelope': 1.0.13 + tslib: 2.8.1 + + '@wharfkit/contract@1.2.1': + dependencies: + '@wharfkit/abicache': 1.2.2 + '@wharfkit/antelope': 1.0.13 + '@wharfkit/signing-request': 3.2.0 + tslib: 2.8.1 + + '@wharfkit/resources@1.3.1': + dependencies: + '@wharfkit/antelope': 1.0.13 + bn.js: 4.12.1 + js-big-decimal: 2.2.0 + tslib: 2.8.1 + + '@wharfkit/session@1.4.0': + dependencies: + '@wharfkit/abicache': 1.2.2 + '@wharfkit/account': 1.3.0 + '@wharfkit/antelope': 1.0.13 + '@wharfkit/common': 1.4.2(@wharfkit/antelope@1.0.13) + '@wharfkit/signing-request': 3.2.0 + pako: 2.1.0 + tslib: 2.8.1 + + '@wharfkit/signing-request@3.2.0': + dependencies: + '@wharfkit/antelope': 1.0.13 + tslib: 2.8.1 + + '@wharfkit/token@1.1.2': + dependencies: + '@wharfkit/antelope': 1.0.13 + '@wharfkit/contract': 1.2.1 + bn.js: 4.12.1 + tslib: 2.8.1 + + bn.js@4.12.1: {} + + brorand@1.1.0: {} + + dotenv@16.4.7: {} + + elliptic@6.6.1: + dependencies: + bn.js: 4.12.1 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + esno@4.8.0: + dependencies: + tsx: 4.19.2 + + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fsevents@2.3.3: + optional: true + + get-tsconfig@4.10.0: + dependencies: + resolve-pkg-maps: 1.0.0 + + graceful-fs@4.2.11: {} + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + inherits@2.0.4: {} + + js-big-decimal@2.2.0: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + + pako@2.1.0: {} + + resolve-pkg-maps@1.0.0: {} + + tslib@2.8.1: {} + + tsx@4.19.2: + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.10.0 + optionalDependencies: + fsevents: 2.3.3 + + universalify@2.0.1: {}