{"_id":"@chainmonitor/client-monitor-sdk","name":"@chainmonitor/client-monitor-sdk","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@chainmonitor/client-monitor-sdk","version":"1.0.0","description":"Клиентский SDK для работы с ChainPing Monitor TXS API","private":false,"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json","clean":"rm -rf dist","lint":"echo \"TODO: добавить линтинг для @monitor-txs/client-monitor-sdk\""},"license":"UNLICENSED","devDependencies":{"typescript":"^5.3.3"},"publishConfig":{"access":"public"},"_id":"@chainmonitor/client-monitor-sdk@1.0.0","gitHead":"be4829587687a23e9be28849228f3490e8fd1b29","_nodeVersion":"24.1.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-rROYo8eLjWoLjHk+x49tbhGrwxOqyigbY1yDCsXl7TCjgdgQBdb8pXY8p4NBGJeWcomw8NxKvdN87Cw8qGT98A==","shasum":"a6ac8a237176b07d89463d342c8af7d08491ef0c","tarball":"https://registry.npmjs.org/@chainmonitor/client-monitor-sdk/-/client-monitor-sdk-1.0.0.tgz","fileCount":2,"unpackedSize":6933,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD9Ln+9JdtyEJPKsfrVPyCOeGsNy66SKt3QoyBGy3/bvgIgGLzXVY+ek4KEHTwcbWO55+yGt9IwEyJeDXcfg2HU0F4="}]},"_npmUser":{"name":"chainmonitor","email":"vinatorul2@gmail.com"},"directories":{},"maintainers":[{"name":"chainmonitor","email":"vinatorul2@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/client-monitor-sdk_1.0.0_1770535924980_0.26033335820364645"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-08T07:32:04.912Z","1.0.0":"2026-02-08T07:32:05.105Z","modified":"2026-02-08T07:32:05.276Z"},"maintainers":[{"name":"chainmonitor","email":"vinatorul2@gmail.com"}],"description":"Клиентский SDK для работы с ChainPing Monitor TXS API","license":"UNLICENSED","readme":"# @monitor-txs/client-monitor-sdk\n\nКлиентский SDK для работы с API сервиса мониторинга транзакций ChainPing.\n\n## Возможности\n\n- Готовые методы для ключевых клиентских эндпоинтов\n- Единая обработка ошибок и таймаутов\n- Гибкая настройка базового URL и токена\n\n## Установка\n\n```bash\nnpm install @monitor-txs/client-monitor-sdk\n```\n\n## Быстрый старт\n\n```ts\nimport { MonitorTxsClient } from '@monitor-txs/client-monitor-sdk';\n\nconst client = new MonitorTxsClient({ authToken: '<JWT>' });\n\nconst networks = await client.public.getNetworks();\nconst profile = await client.profile.get();\n```\n\nПо умолчанию SDK подключается к `https://api.chain-monitor.online`.\n\n## Конфигурация\n\n```ts\nconst client = new MonitorTxsClient({\n  baseUrl: 'https://api.chain-monitor.online',\n  authToken: '<JWT>',\n  timeoutMs: 15000,\n  defaultHeaders: { 'X-Client': 'my-app' },\n  retry: { retries: 2, delayMs: 300 },\n});\n```\n\nОтключить Authorization для запроса: `client.request('GET', '/public/networks', { auth: false })`.\n\n## Ошибки\n\n- `MonitorTxsApiError` — ответ API (`status`, `data`, `requestId`)\n- `MonitorTxsNetworkError` — сетевые ошибки\n- `MonitorTxsTimeoutError` — таймаут запроса\n\n---\n\n## API: все методы и ответы\n\n### Profile\n\n| Метод | Описание | Ответ |\n|-------|----------|--------|\n| `client.profile.get()` | Профиль текущего пользователя | `Promise<Profile>` — объект профиля (id, email, name, role, createdAt, updatedAt и т.д.) |\n\n```ts\nconst profile = await client.profile.get();\n// { id: string, email: string, name: string | null, role: string, ... }\n```\n\n---\n\n### Wallets\n\n| Метод | Описание | Ответ |\n|-------|----------|--------|\n| `client.wallets.list()` | Список мониторов кошельков | `Promise<Wallet[]>` — массив кошельков |\n| `client.wallets.create(body)` | Создать монитор кошелька | `Promise<Wallet>` — созданный кошелёк |\n| `client.wallets.update(id, body)` | Обновить настройки монитора | `Promise<Wallet>` — обновлённый кошелёк |\n| `client.wallets.remove(id)` | Удалить монитор | `Promise<void>` |\n| `client.wallets.toggle(id)` | Включить/выключить мониторинг | `Promise<Wallet>` — кошелёк с новым статусом |\n\n**Тело запросов:**\n\n- `create(body: CreateWalletDTO)` — `{ address, networkUuid, tokenUuids, minAmount?, webhookUrl?, notifySettings? }`\n- `update(id, body: UpdateWalletDTO)` — `{ tokenUuids?, minAmount?, webhookUrl?, notifySettings?, status? }`\n\n```ts\nconst list = await client.wallets.list();\n// [{ id, address, networkUuid, tokenUuids, status, ... }, ...]\n\nconst wallet = await client.wallets.create({\n  address: '0x...',\n  networkUuid: '...',\n  tokenUuids: ['...'],\n});\n// { id: string, address: string, status: string, ... }\n```\n\n---\n\n### Notifications\n\n| Метод | Описание | Ответ |\n|-------|----------|--------|\n| `client.notifications.list(query?)` | Список уведомлений | `Promise<Notification[]>` (или объект с пагинацией — как возвращает API) |\n| `client.notifications.get(id)` | Уведомление по ID | `Promise<Notification>` — один объект уведомления |\n\n**Query:** `{ limit?, offset?, status?, channel?, networkSlug? }`\n\n```ts\nconst list = await client.notifications.list({ limit: 20, offset: 0 });\nconst one = await client.notifications.get('<notification-id>');\n// { id, networkSlug, transactionHash, status, channel, payload, createdAt, ... }\n```\n\n---\n\n### Public (без авторизации)\n\n| Метод | Описание | Ответ |\n|-------|----------|--------|\n| `client.public.getNetworks()` | Активные сети с токенами | `Promise<PublicNetworkDTO[]>` |\n\n**Структура ответа `PublicNetworkDTO[]`:**\n\n```ts\nArray<{\n  id: string;\n  name: string;\n  slug: string;\n  tokens: Array<{\n    id: string;\n    name: string;\n    slug: string;\n    type: 'native' | 'token';\n  }>;\n}>\n```\n\n```ts\nconst networks = await client.public.getNetworks();\n// [{ id, name, slug, tokens: [{ id, name, slug, type }] }, ...]\n```\n\n---\n\n### Balance\n\n| Метод | Описание | Ответ |\n|-------|----------|--------|\n| `client.balance.get()` | Текущий баланс кредитов | `Promise<{ balance: number }>` |\n| `client.balance.getTransactions(query?)` | История транзакций по балансу | `Promise<{ transactions: Transaction[], total: number }>` (или как в API) |\n| `client.balance.getTransaction(id)` | Транзакция по ID | `Promise<Transaction>` — одна запись |\n\n**Query для list:** `{ limit?, offset?, type?, status? }`\n\n```ts\nconst { balance } = await client.balance.get();\n// { balance: number }\n\nconst history = await client.balance.getTransactions({ limit: 50, offset: 0 });\n// { transactions: [...], total: number } или массив — по контракту API\n\nconst tx = await client.balance.getTransaction('<transaction-id>');\n// { id, amount, type, status, balanceBefore, balanceAfter, createdAt, ... }\n```\n\n---\n\n## Низкоуровневый доступ\n\n```ts\nconst response = await client.request('GET', '/custom-endpoint', {\n  query: { limit: 10 },\n  body: { ... },\n});\n```\n\n## Экспортируемые типы\n\nИз пакета можно импортировать типы ответов и тел запросов:\n\n- `BalanceResponse` — ответ `balance.get()`: `{ balance: number }`\n- `PublicNetworkDTO`, `PublicTokenDTO` — ответ `public.getNetworks()`\n- `CreateWalletDTO`, `UpdateWalletDTO` — тела запросов кошельков\n- `MonitorTxsApiError`, `MonitorTxsNetworkError`, `MonitorTxsTimeoutError`\n- `MonitorTxsClientOptions`, `RequestOptions`, `RetryOptions`\n- `DEFAULT_BASE_URL`\n\n## Совместимость\n\n- Node.js 18+\n- TypeScript 5+\n","readmeFilename":"README.md","_rev":"1-7d1c2366f8e7c1c562db50dd0b59c9a4"}