Передача токена TRC-20 с помощью TronLink
пожалуйста, я пытаюсь интегрировать отправку любого токена trc20 с помощью tronlink, нажав кнопку на моем веб-сайте. Мне удалось отправить TRX, используя приведенный ниже код JavaScript, но я хочу иметь возможность отправлять trc-20, как USDT, любая помощь будет очень признательна. Спасибо
1 ответ
TRC20 на самом деле являются смарт-контрактами. Ссылка tronscan USDT Чтобы перевести TRC20 с вашего адреса на другой адрес, вы будете вызывать функцию перевода TRC20, ниже приведен фрагмент кода Tron USDT.
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
Документация по взаимодействию контрактов TronWeb TRC20 . Вы можете использовать функцию triggerSmartContract от tronWeb для создания необработанной транзакции, подписи и трансляции.
- создать необработанную транзакцию
var senderAddress = tronweb.defaultAddress.base58;
var receiverAddress = "TV3nb5HYFe2xBEmyb3ETe93UGkjAhWyzrs";
var amount = 100;
var parameter = [{type:'address',value:receiverAddress},{type:'uint256',value:amount}]
var options = {
feeLimit:100000000
}
const transactionObject = await tronWeb.transactionBuilder.triggerSmartContract(
tronweb.address.toHex(contractAddress),
"transfer(address,uint256)",
options,
parameter,
tronweb.address.toHex(senderAddress)
);
Примечание: все адреса имеют формат base58, нам нужно преобразовать его в шестнадцатеричный формат, используя
tronweb.address.toHex(address)
в
transactionObject
.
parameter
переменная, где мы устанавливаем адрес получателя и сумму.
- Знак
var signedTransaction = await tronWeb.trx.sign(transactionObject.transaction);
- Транслировать
var broadcastTransaction = await tronWeb.trx.sendRawTransaction(signedTransaction);
console.log(broadcastTransaction);