Найти в Дзене
Crazy Coder

Как получать уведомления через API о входящих транзакциях USDT TRC20 на свой кошелёк

Для того чтобы установить некастодиальный кошелёк для USDT на сети TRC20 на Linux-сервере с CLI интерфейсом, можно использовать следующие варианты:
1. **TronLink и TronWeb**:
TronLink — это популярный кошелек для сети TRON, поддерживающий TRC20-токены, такие как USDT. Он доступен как расширение для браузера, но его функционал можно использовать через TronWeb — библиотеку JavaScript для взаимодействия с TRON-сетью.
**Установка TronWeb**:
1. Убедитесь, что у вас установлен Node.js и npm:
2. Установите TronWeb:
```bash
npm install tronweb
```
3. Используйте TronWeb для создания новых кошельков и управления транзакциями:
- Пример кода на Node.js для создания нового кошелька:
```javascript
const TronWeb = require('tronweb');
const tronWeb = new TronWeb({
fullHost: 'https://api.trongrid.io'
});
const account = tronWeb.createAccount();
account.then(result => console.log(result));
```
**Ссылки**:
Оглавление

Для того чтобы установить некастодиальный кошелёк для USDT на сети TRC20 на Linux-сервере с CLI интерфейсом, можно использовать следующие варианты:

1. **TronLink и TronWeb**:
TronLink — это популярный кошелек для сети TRON, поддерживающий TRC20-токены, такие как USDT. Он доступен как расширение для браузера, но его функционал можно использовать через TronWeb — библиотеку JavaScript для взаимодействия с TRON-сетью.

**Установка TronWeb**:
1. Убедитесь, что у вас установлен Node.js и npm:

2. Установите TronWeb:
```bash
npm install tronweb
```
3. Используйте TronWeb для создания новых кошельков и управления транзакциями:
- Пример кода на Node.js для создания нового кошелька:
```javascript
const TronWeb = require('tronweb');
const tronWeb = new TronWeb({
fullHost: 'https://api.trongrid.io'
});

const account = tronWeb.createAccount();
account.then(result => console.log(result));
```

**Ссылки**:
- TronWeb GitHub: [https://github.com/tronprotocol/tronweb](https://github.com/tronprotocol/tronweb)
- TronLink: [https://www.tronlink.org](https://www.tronlink.org)

2. **TRON Full Node**:
Если вам нужна полная версия, можно установить полный узел TRON, который также будет включать CLI для управления кошельками.

**Установка полного узла TRON**:
1. Установите Java:
```bash
sudo apt install openjdk-11-jdk
```
2. Клонируйте Tron Full Node:
```bash
git clone
https://github.com/tronprotocol/java-tron.git
cd java-tron
./gradlew build
```
3. Запустите узел:
```bash
java -jar build/libs/FullNode.jar -c config.conf
```

4. Для работы с CLI
https://tronprotocol.github.io/tron-cli/
https://github.com/tronprotocol/wallet-cli

**Ссылки**:
- Tron Full Node GitHub: [https://github.com/tronprotocol/java-tron](https://github.com/tronprotocol/java-tron)

Для управления кошельками через TronWeb вы можете взаимодействовать с TRC20-токенами (в том числе с USDT), отправляя и получая их через командную строку.



Легковесная версия кошелька



Для легковесной версии кошелька в сети TRON с поддержкой TRC20-токенов (включая USDT) и с CLI интерфейсом можно рассмотреть следующие решения:

### 1. **TronLink с TronWeb (Light)**:
Это один из самых легковесных вариантов. TronLink в связке с TronWeb позволяет взаимодействовать с сетью TRON без необходимости запускать полный узел. Это более легкое решение по сравнению с запуском полного узла, и при этом TronWeb предоставляет достаточно мощный интерфейс для взаимодействия с TRC20-токенами.

Установка TronWeb была описана в первой части. Это позволяет использовать light-версию кошелька без запуска полного узла на сервере.

### 2. **TronGrid + TronWeb**:
TronGrid — это официальный API-сервис от TRON для работы с сетью, который можно использовать в качестве "легкого клиента" без необходимости синхронизировать свой узел. Вместе с TronWeb это дает возможность работать с TRC20-токенами в режиме light.

**Установка TronWeb и использование TronGrid**:
1. Установите на Node.js TronWeb, как описано выше.
2. Используйте следующий код для работы с TronGrid:
```javascript
const TronWeb = require('tronweb');
const tronWeb = new TronWeb({
fullHost: 'https://api.trongrid.io' // Использует публичный узел TronGrid
});

const account = tronWeb.createAccount();
account.then(result => console.log(result));
```
Это позволит вам использовать легкий кошелек через TronWeb и TronGrid, при этом не нужно загружать блокчейн на ваш сервер.

**Ссылки**:
- TronGrid: [https://www.trongrid.io](https://www.trongrid.io)
- TronWeb GitHub: [https://github.com/tronprotocol/tronweb](https://github.com/tronprotocol/tronweb)

Оба варианта позволяют использовать легковесные кошельки на основе взаимодействия с удаленными узлами, что минимизирует нагрузку на сервер и исключает необходимость полного скачивания блокчейна.

А как отследить транзакцию USDT TRC20 программным путём (API)?

Для отслеживания успешных транзакций на конкретный кошелёк в сети TRON через TronWeb можно использовать следующий серверный скрипт на Node.js. Этот скрипт будет периодически проверять поступающие транзакции на ваш кошелёк и выводить их в консоль, если они успешны.

### Шаги для настройки:

1. **Установите на Node.js TronWeb**, если они ещё не установлены:
```bash
npm install tronweb
```

2. **Создайте файл `watchTransactions.js`** со следующим содержимым:

```javascript
const TronWeb = require('tronweb');

// Указываем основной узел TRON (TronGrid)
const tronWeb = new TronWeb({
fullHost: 'https://api.trongrid.io'
});

// Укажите адрес вашего кошелька
const walletAddress = 'ВАШ_АДРЕС_КОШЕЛЬКА';

// Функция для проверки успешных транзакций на кошелёк
async function checkTransactions() {
try {
// Получаем список последних транзакций по кошельку
const transactions = await tronWeb.trx.getTransactionsRelated(walletAddress, 'to');

// Обрабатываем каждую транзакцию
for (const tx of transactions) {
if (tx.ret && tx.ret[0].contractRet === 'SUCCESS') {
const txInfo = await tronWeb.trx.getTransactionInfo(tx.txID);

// Проверяем, что это транзакция TRC20 (например, USDT)
const logs = txInfo.log;
if (logs && logs.length > 0) {
logs.forEach(log => {
const tokenTransfer = tronWeb.utils.abi.decodeLog(log);
if (tokenTransfer) {
console.log('Токен переведён на кошелёк:');
console.log('TxID:', tx.txID);
console.log('Отправитель:', tx.raw_data.contract[0].parameter.value.owner_address);
console.log('Сумма:', tokenTransfer.amount / 1e6, 'USDT');
console.log('====================');
}
});
}
}
}
} catch (error) {
console.error('Ошибка при проверке транзакций:', error);
}
}

// Запускаем проверку транзакций каждую минуту
setInterval(checkTransactions, 60000); // Период проверки 60 секунд
```

### Объяснение работы скрипта:
1. Скрипт использует библиотеку **TronWeb** для обращения к публичному API TronGrid.
2. Каждую минуту (интервал можно изменить) скрипт проверяет входящие транзакции на указанный адрес кошелька.
3. Если транзакция успешна (статус `SUCCESS`), она выводится в консоль.
4. Скрипт также проверяет, является ли транзакция переводом токена TRC20 (например, USDT).
5. Выводится информация о сумме перевода, отправителе и ID транзакции.

### Запуск скрипта:

1. Убедитесь, что у вас установлен **Node.js** и необходимые зависимости:
```bash
node watchTransactions.js
```

Теперь скрипт будет отслеживать поступающие транзакции на ваш кошелёк в сети TRON и выводить их в консоль.
Код на golang к API TronGrid

package main

import (
"encoding/json"
"fmt"
"log"
"net/http"
"time"
)

const tronGridAPI = "https://api.trongrid.io/v1/accounts/%s/transactions?only_to=true&limit=10"
const walletAddress = "ВАШ_АДРЕС_КОШЕЛЬКА"

type Transaction struct {
TxID string `json:"txID"`
Ret []struct {
ContractRet string `json:"contractRet"`
} `json:"ret"`
RawData struct {
Contract []struct {
Parameter struct {
Value struct {
OwnerAddress string `json:"owner_address"`
} `json:"value"`
} `json:"parameter"`
} `json:"contract"`
} `json:"raw_data"`
}

type Response struct {
Data []Transaction `json:"data"`
}

func getTransactions(wallet string) ([]Transaction, error) {
url := fmt.Sprintf(tronGridAPI, wallet)
resp, err := http.Get(url)
if err != nil {
return nil, err
}
defer resp.Body.Close()

var result Response
err = json.NewDecoder(resp.Body).Decode(&result)
if err != nil {
return nil, err
}
return result.Data, nil
}

func checkTransactions() {
transactions, err := getTransactions(walletAddress)
if err != nil {
log.Printf("Ошибка при получении транзакций: %v", err)
return
}

for _, tx := range transactions {
// Проверяем успешность транзакции
if len(tx.Ret) > 0 && tx.Ret[0].ContractRet == "SUCCESS" {
fmt.Println("Токен переведён на кошелёк:")
fmt.Println("TxID:", tx.TxID)
fmt.Println("Отправитель:", tx.RawData.Contract[0].Parameter.Value.OwnerAddress)
fmt.Println("====================")
}
}
}

func main() {
// Запускаем проверку транзакций каждые 60 секунд
for {
checkTransactions()
time.Sleep(60 * time.Second)
}
}


А как посмотреть транзакцию USDT TRC20 вручную?

Для просмотра транзакций USDT на TRC20 вы можете использовать следующие сайты:
TronScan: Это основной блокчейн-эксплорер сети TRON. Вы можете просматривать транзакции, балансы и информацию о токенах TRC20, включая USDT.Ссылка:
https://tronscan.org
TronGrid: Это API для работы с сетью TRON, которое также можно использовать для просмотра транзакций через API, если требуется автоматизация.Ссылка:
https://www.trongrid.io


Как генерировать новые кошельки в TRON программно?

const TronWeb = require('tronweb');

const tronWeb = new TronWeb({
fullHost: 'https://api.trongrid.io' // Использование light node через TronGrid API
// fullHost: 'http://localhost:8090' // Полный узел TRON
});

async function generateWallet() {
const account = await tronWeb.createAccount();
console.log("Private Key:", account.privateKey);
console.log("Public Key:", account.publicKey);
console.log("Address:", account.address.base58);
}

generateWallet();