From ca4dcdd9e17e4bd0fcc2168801fe311997a81e67 Mon Sep 17 00:00:00 2001 From: krigga <25533192+krigga@users.noreply.github.com> Date: Mon, 16 Sep 2024 14:38:53 +0300 Subject: [PATCH] feat: w5 feat: toncenter as default provider chore: updated deps chore: removed tonhub connector --- CHANGELOG.md | 15 ++ README.md | 2 +- package.json | 15 +- src/cli/constants.ts | 2 +- src/network/createNetworkProvider.ts | 59 +++---- src/network/send/MnemonicProvider.ts | 7 +- src/network/send/TonHubProvider.ts | 123 ------------- yarn.lock | 255 ++++++--------------------- 8 files changed, 107 insertions(+), 371 deletions(-) delete mode 100644 src/network/send/TonHubProvider.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bad69e..91e1099 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.24.0] - 2024-09-16 + +### Added + +- Added support for wallet v5 in the Mnemonic provider + +### Changed + +- Changed the default API provider to Toncenter v2 (instead of Orbs TON Access). Rate limited requests are automatically retried +- Updated dependencies + +### Removed + +- Removed the specialized TonHub connector. Use TON Connect instead + ## [0.23.0] - 2024-09-11 ### Changed diff --git a/README.md b/README.md index 2b13105..a0f4c60 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ Blueprint is an all-in-one development environment designed to enhance the proce 1. Compiling FunC with https://github.com/ton-community/func-js 2. Compiling Tact with https://github.com/tact-lang/tact 3. Testing smart contracts with https://github.com/ton-org/sandbox -4. Deploying smart contracts with [TON Connect 2](https://github.com/ton-connect), [Tonhub wallet](https://tonhub.com/) or a `ton://` deeplink +4. Deploying smart contracts with [TON Connect 2](https://github.com/ton-connect) or a `ton://` deeplink ### Requirements diff --git a/package.json b/package.json index 174c232..5f9ba3e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ton/blueprint", - "version": "0.23.0", + "version": "0.24.0", "description": "Framework for development of TON smart contracts", "main": "dist/index.js", "bin": "./dist/cli/cli.js", @@ -19,9 +19,9 @@ "format": "prettier --write src" }, "devDependencies": { - "@ton/core": "^0.56.0", - "@ton/crypto": "^3.2.0", - "@ton/ton": "^13.11.0", + "@ton/core": "^0.58.1", + "@ton/crypto": "^3.3.0", + "@ton/ton": "^15.0.0", "@types/inquirer": "^8.2.6", "@types/node": "^20.2.5", "@types/qrcode-terminal": "^0.12.0", @@ -29,9 +29,9 @@ "typescript": "^4.9.5" }, "peerDependencies": { - "@ton/core": ">=0.56.0", - "@ton/crypto": ">=3.2.0", - "@ton/ton": ">=13.11.0" + "@ton/core": ">=0.58.1", + "@ton/crypto": ">=3.3.0", + "@ton/ton": ">=15.0.0" }, "dependencies": { "@tact-lang/compiler": "^1.4.0", @@ -42,7 +42,6 @@ "dotenv": "^16.1.4", "inquirer": "^8.2.5", "qrcode-terminal": "^0.12.0", - "ton-x": "^2.1.0", "ts-node": "^10.9.1" }, "packageManager": "yarn@4.3.1" diff --git a/src/cli/constants.ts b/src/cli/constants.ts index 3128d97..fba9b88 100644 --- a/src/cli/constants.ts +++ b/src/cli/constants.ts @@ -56,7 +56,7 @@ Flags: --custom-version - specifies the API version to use with the custom API. Options: v2 (defualt), v4. --custom-key - specifies the API key to use with the custom API, can only be used with API v2. --custom-type - specifies the network type to be indicated to scripts. Options: custom (default), mainnet, testnet. ---tonconnect, --tonhub, --deeplink, --mnemonic - specifies the deployer to use when running the script. If not specified on the command line, it will be asked interactively. +--tonconnect, --deeplink, --mnemonic - specifies the deployer to use when running the script. If not specified on the command line, it will be asked interactively. --tonscan, --tonviewer, --toncx, --dton - specifies the network explorer to use when displaying links to the deployed contracts. Default: tonscan.`, build: `Usage: blueprint build [contract name] [flags] diff --git a/src/network/createNetworkProvider.ts b/src/network/createNetworkProvider.ts index 8ca220a..4d4b3aa 100644 --- a/src/network/createNetworkProvider.ts +++ b/src/network/createNetworkProvider.ts @@ -2,7 +2,6 @@ import { oneOrZeroOf, sleep, getExplorerLink } from '../utils'; import arg from 'arg'; import { DeeplinkProvider } from './send/DeeplinkProvider'; import { TonConnectProvider } from './send/TonConnectProvider'; -import { TonHubProvider } from './send/TonHubProvider'; import { Address, Cell, @@ -30,7 +29,7 @@ import { mnemonicToPrivateKey } from '@ton/crypto'; import { MnemonicProvider, WalletVersion } from './send/MnemonicProvider'; import { Config } from '../config/Config'; import { CustomNetwork } from '../config/CustomNetwork'; -import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'; +import axios, { AxiosResponse, AxiosAdapter, InternalAxiosRequestConfig } from 'axios'; const INITIAL_DELAY = 400; const MAX_ATTEMPTS = 4; @@ -45,7 +44,6 @@ export const argSpec = { '--tonconnect': Boolean, '--deeplink': Boolean, - '--tonhub': Boolean, '--mnemonic': Boolean, '--tonscan': Boolean, @@ -190,7 +188,7 @@ class NetworkProviderImpl implements NetworkProvider { } } - async waitForDeploy(address: Address, attempts: number = 10, sleepDuration: number = 2000) { + async waitForDeploy(address: Address, attempts: number = 20, sleepDuration: number = 2000) { if (attempts <= 0) { throw new Error('Attempt number must be positive'); } @@ -316,7 +314,6 @@ class NetworkProviderBuilder { let deployUsing = oneOrZeroOf({ tonconnect: this.args['--tonconnect'], deeplink: this.args['--deeplink'], - tonhub: this.args['--tonhub'], mnemonic: this.args['--mnemonic'], }); @@ -333,10 +330,6 @@ class NetworkProviderBuilder { name: 'Create a ton:// deep link', value: 'deeplink', }, - { - name: 'Tonhub wallet', - value: 'tonhub', - }, { name: 'Mnemonic', value: 'mnemonic', @@ -358,10 +351,6 @@ class NetworkProviderBuilder { if (network === 'custom') throw new Error('Tonkeeper cannot work with custom network.'); provider = new TonConnectProvider(new FSStorage(storagePath), this.ui); break; - case 'tonhub': - if (network === 'custom') throw new Error('TonHub cannot work with custom network.'); - provider = new TonHubProvider(network, new FSStorage(storagePath), this.ui); - break; case 'mnemonic': provider = await createMnemonicProvider(client, this.ui); break; @@ -438,29 +427,31 @@ class NetworkProviderBuilder { throw new Error('The usage of this network provider requires either mainnet or testnet'); } } else { - tc = new TonClient({ - endpoint: network === 'mainnet' ? 'https://toncenter.com/api/v2/jsonRPC' : 'https://testnet.toncenter.com/api/v2/jsonRPC', - httpAdapter: async (config: AxiosRequestConfig) => { - let r: AxiosResponse; - let delay = INITIAL_DELAY; - let attempts = 0; - while (true) { - r = await axios({ - ...config, - adapter: undefined, - validateStatus: (status: number) => (status >= 200 && status < 300) || status === 429, - }); - if (r.status !== 429) { - return r; - } - await sleep(delay); - delay *= 2; - attempts++; - if (attempts >= MAX_ATTEMPTS) { - throw new Error('Max attempts reached'); - } + const httpAdapter: AxiosAdapter = async (config: InternalAxiosRequestConfig) => { + let r: AxiosResponse; + let delay = INITIAL_DELAY; + let attempts = 0; + while (true) { + r = await axios({ + ...config, + adapter: undefined, + validateStatus: (status: number) => (status >= 200 && status < 300) || status === 429, + }); + if (r.status !== 429) { + return r; + } + await sleep(delay); + delay *= 2; + attempts++; + if (attempts >= MAX_ATTEMPTS) { + throw new Error('Max attempts reached'); } } + }; + + tc = new TonClient({ + endpoint: network === 'mainnet' ? 'https://toncenter.com/api/v2/jsonRPC' : 'https://testnet.toncenter.com/api/v2/jsonRPC', + httpAdapter, }); } diff --git a/src/network/send/MnemonicProvider.ts b/src/network/send/MnemonicProvider.ts index addd1b9..a4e8a3e 100644 --- a/src/network/send/MnemonicProvider.ts +++ b/src/network/send/MnemonicProvider.ts @@ -9,6 +9,7 @@ import { WalletContractV3R1, WalletContractV3R2, WalletContractV4, + WalletContractV5R1, } from '@ton/ton'; import { Address, @@ -34,7 +35,7 @@ interface WalletInstance extends Contract { seqno: number; secretKey: Buffer; messages: MessageRelaxed[]; - sendMode?: SendMode; + sendMode: SendMode; timeout?: number; }, ): Promise; @@ -44,7 +45,7 @@ interface WalletClass { create(args: { workchain: number; publicKey: Buffer }): WalletInstance; } -export type WalletVersion = 'v1r1' | 'v1r2' | 'v1r3' | 'v2r1' | 'v2r2' | 'v3r1' | 'v3r2' | 'v4'; +export type WalletVersion = 'v1r1' | 'v1r2' | 'v1r3' | 'v2r1' | 'v2r2' | 'v3r1' | 'v3r2' | 'v4' | 'v5r1'; const wallets: Record = { v1r1: WalletContractV1R1, @@ -55,6 +56,7 @@ const wallets: Record = { v3r1: WalletContractV3R1, v3r2: WalletContractV3R2, v4: WalletContractV4, + v5r1: WalletContractV5R1, }; export class MnemonicProvider implements SendProvider { @@ -118,6 +120,7 @@ export class MnemonicProvider implements SendProvider { }, }, ], + sendMode: SendMode.PAY_GAS_SEPARATELY, }); this.#ui.write('Sent transaction'); diff --git a/src/network/send/TonHubProvider.ts b/src/network/send/TonHubProvider.ts deleted file mode 100644 index bfa6335..0000000 --- a/src/network/send/TonHubProvider.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { Address, beginCell, Cell, StateInit, storeStateInit } from '@ton/core'; -import { SendProvider } from './SendProvider'; -import { TonhubConnector, TonhubSessionStateReady, TonhubTransactionRequest } from 'ton-x'; -import qrcode from 'qrcode-terminal'; -import { Storage } from '../storage/Storage'; -import { UIProvider } from '../../ui/UIProvider'; - -const KEY_NAME = 'tonhub_session'; - -type SavedSession = TonhubSessionStateReady & { id: string; seed: string }; - -export class TonHubProvider implements SendProvider { - #connector: TonhubConnector; - #storage: Storage; - #ui: UIProvider; - #session?: SavedSession; - - constructor(network: 'mainnet' | 'testnet', storage: Storage, ui: UIProvider) { - this.#connector = new TonhubConnector({ - network, - }); - this.#storage = storage; - this.#ui = ui; - } - - private async getExistingSession() { - const sessionString = await this.#storage.getItem(KEY_NAME); - - if (sessionString === null) return undefined; - - let session: SavedSession = JSON.parse(sessionString); - - const state = await this.#connector.getSessionState(session.id); - - if (state.state === 'ready') { - session = { - ...state, - id: session.id, - seed: session.seed, - }; - - await this.#storage.setItem(KEY_NAME, JSON.stringify(session)); - - return session; - } - } - - private async getSession() { - const existing = await this.getExistingSession(); - if (existing !== undefined) return existing; - - const createdSession = await this.#connector.createNewSession({ - name: 'TON template project', - url: 'https://example.com/', - }); - - this.#ui.setActionPrompt('Connecting to wallet...\n'); - - this.#ui.write('\n'); - - qrcode.generate(createdSession.link, { small: true }, (qr) => this.#ui.write(qr)); - - this.#ui.write('\n' + createdSession.link + '\n\n'); - - this.#ui.setActionPrompt('Scan the QR code in your wallet or open the link...'); - - const state = await this.#connector.awaitSessionReady(createdSession.id, 5 * 60 * 1000); - - if (state.state === 'ready') { - const session: SavedSession = { - ...state, - id: createdSession.id, - seed: createdSession.seed, - }; - - await this.#storage.setItem(KEY_NAME, JSON.stringify(session)); - - return session; - } - - throw new Error('Could not create new session'); - } - - async connect() { - this.#session = await this.getSession(); - this.#ui.write(`Connected to wallet at address: ${Address.parse(this.#session.wallet.address).toString()}\n`); - } - - address(): Address | undefined { - if (!this.#session) return undefined; - - return Address.parse(this.#session.wallet.address); - } - - async sendTransaction(address: Address, amount: bigint, payload?: Cell, stateInit?: StateInit) { - if (!this.#session) throw new Error('TonhubProvider is not connected'); - - const request: TonhubTransactionRequest = { - seed: this.#session.seed, - appPublicKey: this.#session.wallet.appPublicKey, - to: address.toString(), - value: amount.toString(), - timeout: 5 * 60 * 1000, - payload: payload ? payload.toBoc().toString('base64') : undefined, - stateInit: stateInit - ? beginCell().storeWritable(storeStateInit(stateInit)).endCell().toBoc().toString('base64') - : undefined, - }; - - this.#ui.setActionPrompt('Sending transaction. Approve it in your wallet...'); - - const response = await this.#connector.requestTransaction(request); - - if (response.type !== 'success') { - throw new Error(`Tonhub transaction request was not successful (${response.type})`); - } - - this.#ui.clearActionPrompt(); - this.#ui.write('Sent transaction'); - - return response; - } -} diff --git a/yarn.lock b/yarn.lock index d1a4444..436f9f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -137,13 +137,6 @@ __metadata: languageName: node linkType: hard -"@scarf/scarf@npm:^1.1.1": - version: 1.1.1 - resolution: "@scarf/scarf@npm:1.1.1" - checksum: 10/b56fee49481dd561f59c1df943e6ef41196f3674947f4a81e6adc1504e41e94d5314d6d3fe9a9ff4ef54f953bfdfde317f4f8c429bdcb2cbcac605616e3867e7 - languageName: node - linkType: hard - "@tact-lang/compiler@npm:^1.4.0": version: 1.4.0 resolution: "@tact-lang/compiler@npm:1.4.0" @@ -204,9 +197,9 @@ __metadata: dependencies: "@tact-lang/compiler": "npm:^1.4.0" "@ton-community/func-js": "npm:^0.7.0" - "@ton/core": "npm:^0.56.0" - "@ton/crypto": "npm:^3.2.0" - "@ton/ton": "npm:^13.11.0" + "@ton/core": "npm:^0.58.1" + "@ton/crypto": "npm:^3.3.0" + "@ton/ton": "npm:^15.0.0" "@tonconnect/sdk": "npm:^2.2.0" "@types/inquirer": "npm:^8.2.6" "@types/node": "npm:^20.2.5" @@ -217,13 +210,12 @@ __metadata: inquirer: "npm:^8.2.5" prettier: "npm:^3.0.3" qrcode-terminal: "npm:^0.12.0" - ton-x: "npm:^2.1.0" ts-node: "npm:^10.9.1" typescript: "npm:^4.9.5" peerDependencies: - "@ton/core": ">=0.56.0" - "@ton/crypto": ">=3.2.0" - "@ton/ton": ">=13.11.0" + "@ton/core": ">=0.58.1" + "@ton/crypto": ">=3.3.0" + "@ton/ton": ">=15.0.0" bin: blueprint: ./dist/cli/cli.js languageName: unknown @@ -240,14 +232,14 @@ __metadata: languageName: node linkType: hard -"@ton/core@npm:^0.56.0": - version: 0.56.0 - resolution: "@ton/core@npm:0.56.0" +"@ton/core@npm:^0.58.1": + version: 0.58.1 + resolution: "@ton/core@npm:0.58.1" dependencies: symbol.inspect: "npm:1.0.1" peerDependencies: "@ton/crypto": ">=3.2.0" - checksum: 10/29ca0f84f4af806004453f81594d09257d32eb89374555604eb53c79123e70be30307307c75802621cb9355b8cc20f0adab27a2e82dba5a0a2c5a0c5065950e1 + checksum: 10/9d774db62bc83f37d597ee14670e35e1b9765f3921316b1016b8b83234b28b796843a0cbda0540b04eabf5f1c0c37acba095b556ac9116226d04578ed11d0be7 languageName: node linkType: hard @@ -260,6 +252,15 @@ __metadata: languageName: node linkType: hard +"@ton/crypto-primitives@npm:2.1.0": + version: 2.1.0 + resolution: "@ton/crypto-primitives@npm:2.1.0" + dependencies: + jssha: "npm:3.2.0" + checksum: 10/71119f74461ae17bf2cfe7e0a6fcea8d4e359665ea6878b0c935cfd83ca0d84f9c299df3467adb1b1b7ba50f7d446732f2c13b5ea5e26dc1703a6dc24063be3a + languageName: node + linkType: hard + "@ton/crypto@npm:^3.2.0": version: 3.2.0 resolution: "@ton/crypto@npm:3.2.0" @@ -271,11 +272,22 @@ __metadata: languageName: node linkType: hard -"@ton/ton@npm:^13.11.0": - version: 13.11.0 - resolution: "@ton/ton@npm:13.11.0" +"@ton/crypto@npm:^3.3.0": + version: 3.3.0 + resolution: "@ton/crypto@npm:3.3.0" dependencies: - axios: "npm:^0.25.0" + "@ton/crypto-primitives": "npm:2.1.0" + jssha: "npm:3.2.0" + tweetnacl: "npm:1.0.3" + checksum: 10/0561f2c95df7a53c47262393590bae8c5254ea5802cbecd2fea589073d926f60466292d594171aa3f3375ccaa2b763368fa1023bd5b6ebfe4da16297731cb379 + languageName: node + linkType: hard + +"@ton/ton@npm:^15.0.0": + version: 15.0.0 + resolution: "@ton/ton@npm:15.0.0" + dependencies: + axios: "npm:^1.6.7" dataloader: "npm:^2.0.0" symbol.inspect: "npm:1.0.1" teslabot: "npm:^1.3.0" @@ -283,7 +295,7 @@ __metadata: peerDependencies: "@ton/core": ">=0.56.0" "@ton/crypto": ">=3.2.0" - checksum: 10/a69c02b084edd81052ff8be5ca5a53318fae9c64cde14bbd7038dd7e12af819b4cd8107f0d6dd6ac100aebad5522806e2c84a02a95016bad1758d7f5c4b426e6 + checksum: 10/135df6331ef76be621bffe4d92f8a932333e46a40476bdd6d1d71bb29d354e5fb640eb2ffccfe260b762be3220a02291e4db0e0afc0d33ba78efd25bab6793ee languageName: node linkType: hard @@ -354,15 +366,6 @@ __metadata: languageName: node linkType: hard -"@types/bn.js@npm:^5.1.0": - version: 5.1.1 - resolution: "@types/bn.js@npm:5.1.1" - dependencies: - "@types/node": "npm:*" - checksum: 10/cf2c45833e67ecfc45e5336151965a47857431640b61708b6e4dc81d88ed53585c9b30be59abbbee609cdf7a63828e5b8a58c1a27eb4306e5cb7ddd9bad46650 - languageName: node - linkType: hard - "@types/inquirer@npm:^8.2.6": version: 8.2.6 resolution: "@types/inquirer@npm:8.2.6" @@ -465,22 +468,14 @@ __metadata: languageName: node linkType: hard -"axios@npm:^0.25.0": - version: 0.25.0 - resolution: "axios@npm:0.25.0" +"axios@npm:^1.6.7": + version: 1.7.7 + resolution: "axios@npm:1.7.7" dependencies: - follow-redirects: "npm:^1.14.7" - checksum: 10/7961f4386e5492c2a32756a8c9a2ca247130d4aa8d24f855d11d02f8d99288c6e9a4aabe0675587ace61779b6bd3d54a654f64431c87dc0270cfba52a4dca9c9 - languageName: node - linkType: hard - -"axios@npm:^0.27.0": - version: 0.27.2 - resolution: "axios@npm:0.27.2" - dependencies: - follow-redirects: "npm:^1.14.9" + follow-redirects: "npm:^1.15.6" form-data: "npm:^4.0.0" - checksum: 10/2efaf18dd0805f7bc772882bc86f004abd92d51007b54c5081f74db0d08ce3593e2c010261896d25a14318eeaa2e966fd825e34f810e8a3339dc64b9d177cf70 + proxy-from-env: "npm:^1.1.0" + checksum: 10/7f875ea13b9298cd7b40fd09985209f7a38d38321f1118c701520939de2f113c4ba137832fe8e3f811f99a38e12c8225481011023209a77b0c0641270e20cde1 languageName: node linkType: hard @@ -529,27 +524,6 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:4.11.6": - version: 4.11.6 - resolution: "bn.js@npm:4.11.6" - checksum: 10/22741b015c9fff60fce32fc9988331b298eb9b6db5bfb801babb23b846eaaf894e440e0d067b2b3ae4e46aab754e90972f8f333b31bf94a686bbcb054bfa7b14 - languageName: node - linkType: hard - -"bn.js@npm:5.2.0": - version: 5.2.0 - resolution: "bn.js@npm:5.2.0" - checksum: 10/37052dad02242b70e21f59b52642d67521d160239964a7f5653d86d856f9c4936aee229a66b69e6864e020f41e934ede9ddd0f873b23cffee42c132163558c2a - languageName: node - linkType: hard - -"bn.js@npm:^5.2.0": - version: 5.2.1 - resolution: "bn.js@npm:5.2.1" - checksum: 10/7a7e8764d7a6e9708b8b9841b2b3d6019cc154d2fc23716d0efecfe1e16921b7533c6f7361fb05471eab47986c4aa310c270f88e3507172104632ac8df2cfd84 - languageName: node - linkType: hard - "buffer@npm:^5.5.0": version: 5.7.1 resolution: "buffer@npm:5.7.1" @@ -821,16 +795,6 @@ __metadata: languageName: node linkType: hard -"ethjs-unit@npm:0.1.6": - version: 0.1.6 - resolution: "ethjs-unit@npm:0.1.6" - dependencies: - bn.js: "npm:4.11.6" - number-to-bn: "npm:1.7.0" - checksum: 10/35086cb671806992ec36d5dd43ab67e68ad7a9237e42c0e963f9081c88e40147cda86c1a258b0a3180bf2b7bc1960e607c5bcaefdb2196e0f3564acf73276189 - languageName: node - linkType: hard - "eventsource@npm:^2.0.2": version: 2.0.2 resolution: "eventsource@npm:2.0.2" @@ -858,13 +822,13 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.14.7, follow-redirects@npm:^1.14.9": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" +"follow-redirects@npm:^1.15.6": + version: 1.15.9 + resolution: "follow-redirects@npm:1.15.9" peerDependenciesMeta: debug: optional: true - checksum: 10/8be0d39919770054812537d376850ccde0b4762b0501c440bd08724971a078123b55f57704f2984e0664fecc0c86adea85add63295804d9dce401cd9604c91d3 + checksum: 10/e3ab42d1097e90d28b913903841e6779eb969b62a64706a3eb983e894a5db000fbd89296f45f08885a0e54cd558ef62e81be1165da9be25a6c44920da10f424c languageName: node linkType: hard @@ -879,13 +843,6 @@ __metadata: languageName: node linkType: hard -"fp-ts@npm:^2.11.1, fp-ts@npm:^2.12.0": - version: 2.16.0 - resolution: "fp-ts@npm:2.16.0" - checksum: 10/e87fe54c0eb47b6c10cdb9a7eb3c1d6bdf9fc45e19998bd141b5ab3d748351a97d9c093dbf140605d6e2e00173d6d223c83b17a04753ff3ec63642e2abe16690 - languageName: node - linkType: hard - "function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" @@ -1037,27 +994,6 @@ __metadata: languageName: node linkType: hard -"io-ts-reporters@npm:^2.0.0": - version: 2.0.1 - resolution: "io-ts-reporters@npm:2.0.1" - dependencies: - "@scarf/scarf": "npm:^1.1.1" - peerDependencies: - fp-ts: ^2.10.5 - io-ts: ^2.2.16 - checksum: 10/62cd5202d838c57eae5147125dbcdee16b366d799223edb9141ea84ff49d1534fded1c5e7c69562bdb1b9188878b2328f76f9f9448bdae1c1fda261af812ba60 - languageName: node - linkType: hard - -"io-ts@npm:^2.2.16": - version: 2.2.20 - resolution: "io-ts@npm:2.2.20" - peerDependencies: - fp-ts: ^2.5.0 - checksum: 10/c4508f666dec87ac5e343f11a1d69f4026509b0add3a88c9a39b71ca2d5117396af14ee2b6d1324a17763857d97dd3933095a6b99d885c3b38a89b548e5e32b3 - languageName: node - linkType: hard - "ipfs-unixfs-importer@npm:9.0.10": version: 9.0.10 resolution: "ipfs-unixfs-importer@npm:9.0.10" @@ -1098,13 +1034,6 @@ __metadata: languageName: node linkType: hard -"is-hex-prefixed@npm:1.0.0": - version: 1.0.0 - resolution: "is-hex-prefixed@npm:1.0.0" - checksum: 10/5ac58e6e528fb029cc43140f6eeb380fad23d0041cc23154b87f7c9a1b728bcf05909974e47248fd0b7fcc11ba33cf7e58d64804883056fabd23e2b898be41de - languageName: node - linkType: hard - "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -1338,16 +1267,6 @@ __metadata: languageName: node linkType: hard -"number-to-bn@npm:1.7.0": - version: 1.7.0 - resolution: "number-to-bn@npm:1.7.0" - dependencies: - bn.js: "npm:4.11.6" - strip-hex-prefix: "npm:1.0.0" - checksum: 10/702e8f00b6b90abd23f711056005179c3bd5ce3b063c47d468250f63ab3b9b4b82e27bff3b4642a9e71e06c717d5ed359873501746df0a64c3db1fa6d704e704 - languageName: node - linkType: hard - "object-inspect@npm:^1.13.1": version: 1.13.1 resolution: "object-inspect@npm:1.13.1" @@ -1472,6 +1391,13 @@ __metadata: languageName: node linkType: hard +"proxy-from-env@npm:^1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: 10/f0bb4a87cfd18f77bc2fba23ae49c3b378fb35143af16cc478171c623eebe181678f09439707ad80081d340d1593cd54a33a0113f3ccb3f4bc9451488780ee23 + languageName: node + linkType: hard + "qrcode-terminal@npm:^0.12.0": version: 0.12.0 resolution: "qrcode-terminal@npm:0.12.0" @@ -1647,15 +1573,6 @@ __metadata: languageName: node linkType: hard -"strip-hex-prefix@npm:1.0.0": - version: 1.0.0 - resolution: "strip-hex-prefix@npm:1.0.0" - dependencies: - is-hex-prefixed: "npm:1.0.0" - checksum: 10/4cafe7caee1d281d3694d14920fd5d3c11adf09371cef7e2ccedd5b83efd9e9bd2219b5d6ce6e809df6e0f437dc9d30db1192116580875698aad164a6d6b285b - languageName: node - linkType: hard - "supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -1672,7 +1589,7 @@ __metadata: languageName: node linkType: hard -"teslabot@npm:^1.3.0, teslabot@npm:^1.5.0": +"teslabot@npm:^1.3.0": version: 1.5.0 resolution: "teslabot@npm:1.5.0" checksum: 10/714ab9a3eadf17efdbcc78c140246c6cf02b0fceff2fd3b9e37de7c86ad05af816037145a258b4b115327bc88219d782f64047812483169037d6956f46bb1450 @@ -1695,72 +1612,6 @@ __metadata: languageName: node linkType: hard -"ton-crypto-primitives@npm:2.0.0": - version: 2.0.0 - resolution: "ton-crypto-primitives@npm:2.0.0" - dependencies: - jssha: "npm:3.2.0" - checksum: 10/a81e5e7f1e44a2f32c519d6a9c3512c047b837be2f90a4e5aa226378b330ec6f9d36c1937a21b947eb792ae819c6906cfbd5b5eeab891f9df486d570141fc749 - languageName: node - linkType: hard - -"ton-crypto@npm:2.1.0": - version: 2.1.0 - resolution: "ton-crypto@npm:2.1.0" - dependencies: - jssha: "npm:3.2.0" - ton-crypto-primitives: "npm:2.0.0" - tweetnacl: "npm:1.0.3" - checksum: 10/81a7a034dcc49b2c43ffbc7b98474022ba1ef6c42b2df9ddd1b788b8937801a7f82b7a9dda9d89d38da349356453f3d86d2715790f18b5f71de7ccf9ddc03b48 - languageName: node - linkType: hard - -"ton-crypto@npm:^3.0.0": - version: 3.2.0 - resolution: "ton-crypto@npm:3.2.0" - dependencies: - jssha: "npm:3.2.0" - ton-crypto-primitives: "npm:2.0.0" - tweetnacl: "npm:1.0.3" - checksum: 10/2679026f38ef8c2652b0caaaf4a9765d347655dec0fc7c8875efd0b6c42b1052bbf83b8b2e8a91fe6a2ffa5b84030d447707cf6cdd98634cd39ab8620e9ee24a - languageName: node - linkType: hard - -"ton-x@npm:^2.1.0": - version: 2.1.0 - resolution: "ton-x@npm:2.1.0" - dependencies: - "@types/bn.js": "npm:^5.1.0" - axios: "npm:^0.27.0" - bn.js: "npm:^5.2.0" - fp-ts: "npm:^2.12.0" - io-ts: "npm:^2.2.16" - teslabot: "npm:^1.5.0" - ton: "npm:9.8.0" - ton-crypto: "npm:^3.0.0" - checksum: 10/b635a1093029c9ef12fa8cf4985e206a9a74c02a734b58d3863ce66ecb909c967aa128b9f22742626d71c42f1d45d7a2c3683e05345622d380dcdc3eea058e75 - languageName: node - linkType: hard - -"ton@npm:9.8.0": - version: 9.8.0 - resolution: "ton@npm:9.8.0" - dependencies: - axios: "npm:^0.25.0" - bn.js: "npm:5.2.0" - dataloader: "npm:^2.0.0" - ethjs-unit: "npm:0.1.6" - fp-ts: "npm:^2.11.1" - io-ts: "npm:^2.2.16" - io-ts-reporters: "npm:^2.0.0" - symbol.inspect: "npm:1.0.1" - teslabot: "npm:^1.3.0" - ton-crypto: "npm:2.1.0" - tweetnacl: "npm:1.0.3" - checksum: 10/e02dc4c525133596ace3e5883a6e8e3e3cd8416a58bf798d41a0ed6e43794b6fdc5adddd53d771c8e7a42eaf55594e0e1bd250b6f44f9854cce1f97a11a46b66 - languageName: node - linkType: hard - "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3"