UNPKG

crypto-bot-api

Version:

Simple and minimalistic client for Telegram CryptoBot Crypto Pay API

111 lines (76 loc) 3.99 kB
# Crypto Bot API - client library for Crypto Pay API Written in TypeScript up-to-date client library for Crypto Pay API provided by Telegram [CryptoBot](https://t.me/CryptoBot). ## Installing Using npm/yarn: ```bash $ npm install crypto-bot-api ``` ```bash $ yarn add crypto-bot-api ``` For browsers use bundles from `dist` directory or add package to your project dependencies and import it. ## Usage In Node.js: ```javascript const CryptoBotAPI = require('crypto-bot-api'); const client = new CryptoBotAPI('1234:AAA...AAA'); const me = await client.getMe(); console.log(me); ``` In browsers: ```html <script src="crypto-bot-api.min.js"></script> <script> var client = new CryptoBotAPI('1234:AAA...AAA'); client.getMe().then(function(me) { console.log(me); }); </script> ``` **Important: at the time of publication of version 0.3.6 (Jul 12, 2025), API servers do not return header Access-Control-Allow-Origin, which allows make requests to API from third-party domains, so client request from website environment won't work (but its work in browser extensions, Electron and similar apps)** More usage examples see in [examples](https://github.com/sergeiivankov/crypto-bot-api/tree/main/examples) project directory. ## Receiving updates Crypto Pay API support events by sending webhooks requests. To handle webhooks request library proposes to use [creating Node.js built-in HTTP or HTTPS server](https://sergeiivankov.github.io/crypto-bot-api/classes/ClientEmitter.html#createServer) or [using Express.js-like middleware API](https://sergeiivankov.github.io/crypto-bot-api/classes/ClientEmitter.html#middleware). See [examples](https://github.com/sergeiivankov/crypto-bot-api/tree/main/examples) with names starts with `webhooks-`. *Note: you need enable webhooks in CryptoBot app settings, if you want to use self-signed certificate you must uploat it in CryptoBot API application settings* ## Documentation Library documentation can be found in [repository GitHub page](https://sergeiivankov.github.io/crypto-bot-api/). For Node.js usage, we advise you to start studying documentation with library default exported [ClientEmitter class](https://sergeiivankov.github.io/crypto-bot-api/classes/ClientEmitter.html). For browsers usage, we advise you to start studying documentation with library default exported for browsers [Client class](https://sergeiivankov.github.io/crypto-bot-api/classes/Client.html). ## Building Files for Node.js compiled to `lib` directory. Browsers bundles compiled to `dist` directory. ```bash $ git clone https://github.com/sergeiivankov/crypto-bot-api $ cd crypto-bot-api $ npm i $ npm run build-docs # To build library documentation $ npm run build-lib # To build for Node.js $ npm run build-dist # To build for Browsers $ npm run build # To build all ``` Also, project have `watch` commands to using it in development: ```bash $ npm run watch-docs # To watch build library documentation $ npm run watch-lib # To watch build for Node.js $ npm run watch-dist # To watch build for Browsers $ npm run watch # To watch all ``` ## Resources * [Documentation](https://sergeiivankov.github.io/crypto-bot-api/) * [Examples](https://github.com/sergeiivankov/crypto-bot-api/tree/main/examples) * [Changelog](https://github.com/sergeiivankov/crypto-bot-api/blob/main/changelog.md) * [Backend CryptoBot API description](https://help.crypt.bot/crypto-pay-api) ## Code quality To maintain high quality of the code and bring source code to a consistent form, project use `eslint` linter and has high documentation requirements. If you want to make a pull request, check that documentation matches your changes and `eslint` does not signal errors with command: ```bash $ npm run lint ``` ## Supported environments - \>= Node.js 12 - \>= Chrome 32 - \>= Firefox 29 - \>= Edge 12 - \>= Safari 8 - \>= Safari on iOS 8 - \> Android Browser 4.4.4 ## License [MIT](https://github.com/sergeiivankov/crypto-bot-api/blob/main/license)