TronWeb отправит trc20 usdt

Я хочу использовать TronWeb для отправки токена trc20. Нужно ли мне использовать для этого contract(). At()? Значит, мне нужно относиться к токену trc20 как к смарт-контракту?

3 ответа

Перво-наперво, чтобы уточнить, что каждый токен в любой сети (не только tron) имеет свой собственный смарт-контракт, который был опубликован в сети.

вот код для получения баланса вашего счета и еще один для перевода USDT

не забудьте инициализировать код своим закрытым ключом и сетевыми конечными точками

обратите внимание, что для выполнения транзакции вам потребуется тронная энергия и пропускная способность, о которых вы можете прочитать по этой ссылке

      const CONTRACT = "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
async function getBalance(account) {
    const {
        abi
    } = await tronWeb.trx.getContract(CONTRACT);

    const contract = tronWeb.contract(abi.entrys, CONTRACT);

    const balance = await contract.methods.balanceOf(account).call();
    console.log("balance:", balance.toString());
}

async function transferUSDT(destination, amount) {
    const {
        abi
    } = await tronWeb.trx.getContract(CONTRACT);

    const contract = tronWeb.contract(abi.entrys, CONTRACT);

    const resp = await contract.methods.transfer(destination, amount).send();
    console.log("transfer:", resp);
}

Первый шаг — инициализируйте экземпляр tronWeb:

      const tronWeb = new TronWeb({
    headers: {
        'TRON-PRO-API-KEY': 'XXXXXXXXX-f915-XXXX-b320-7b67c4ecef9d'
    },
    fullHost: 'https://api.shasta.trongrid.io',
    // privateKey: DEFAULT_PRIVATE_KEY, // you can specify default key
});

Затем получите экземпляр записи контракта:

      async function initContract(contractAddress: string, privateKey: string) {
    // I prefer to specify the key here, because I work with multiple private keys
    tronWeb.setPrivateKey(privateKey);

    return this.tronWeb.contract().at(contractAddress);
}

Наконец, отправьте функцию токенов TRC20 :

      async function sendTokenTransaction(privateKeyFrom: string, to: string, value: number, contractAddress: string): Promise<string | null> {
    try {
        const contract = await initContract(contractAddress, privateKeyFrom);
        const hash = await contract.transfer(to, value).send();

        return hash;
    } catch (err) {
        console.log(`sendTokenTransaction: ${err}`);
    }

    return null;
}

Пример отправки 1 USDT (сеть Shasta):

      // https://shasta.tronscan.org/#/contract/TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs
const usdtContractAddress = "TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs";
const privateKey = "478XXXXXXX851B9163263A90E126F8758133504602BEB669AA613D64ADB9D390";
const to = "TH3JABY4URcbpenmXhYyfi8smvSp1niyX2";

sendTokenTransaction(privateKey, to, 1_000_000, usdtContractAddress);

официальную документациюСсылка на

Когда вы запускаете компонент tronweb с закрытым ключом, вы можете использовать контракт (). At()

      tronWeb = new TronWeb(
    'https://api.nileex.io/',
    'https://api.nileex.io/',
    'https://event.nileex.io/',
    'your privateKey'
);
Другие вопросы по тегам