<YOUR_KEY> pela chave de um dos seus endpoints e
TXYZ… por um endereço real. Os WU nos comentários são o que o Node API cobra exatamente por essas
chamadas.
Conectar
A primeira chamada lê os dados da conta — 1 WU..proto da TRON e recebe endereços como bytes em base64 — veja
gRPC.
Enviar USDT
Monte a transação pelo nó, assine-a do seu lado e transmita-a pelo nó. Sua chave privada nunca sai do seu servidor. Uma transferência custa 2 WU; com tronpy, 3 WU, mais 2 WU uma única vez para carregar o contrato. Nestes exemplos,from (sender) e to são os endereços do remetente e do destinatário, amount
está na menor unidade do token (o USDT tem 6 casas decimais: 1 USDT = 1000000) e PRIVATE_KEY é a
chave privada do remetente. fee_limit é o máximo de TRX, em sun, que a transferência pode queimar:
30000000 são 30 TRX.
parameter são os argumentos de transfer(address,uint256) codificados em ABI, em hex:
o endereço de 20 bytes do destinatário (sua forma hex sem o 41 inicial) completado com zeros à
esquerda até 64 caracteres hex, seguido do valor, também completado até 64. O nó responde com uma
transaction não assinada e o seu txID. Assine o txID com a chave privada do remetente, adicione
a assinatura à transação como "signature": ["<hex>"] e envie esse objeto de transação como
signed.json.
Com grpcurl, call.json é uma mensagem TriggerSmartContract: owner_address, contract_address
e data (o seletor de função de 4 bytes seguido dos argumentos codificados em ABI), todos como bytes em
base64. A mensagem não tem campo para o limite de taxa da transação: defina raw_data.fee_limit na
transação retornada e então assine o SHA-256 do novo raw_data — o txid que veio na resposta deixa
de corresponder depois dessa alteração. Veja gRPC.
Monitorar transferências USDT
Leia o cabeçalho do bloco mais recente, depois os recibos desse bloco, e fique com os de USDT. O cabeçalho custa 1 WU e os recibos de um bloco recente 2 WU — 3 WU por bloco. Acompanhar assim todos os blocos da rede custa cerca de 2.6M WU por mês.Transfer do token em log. Em um evento,
topics[0] é ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, topics[1] e
topics[2] são o remetente e o destinatário (os últimos 40 caracteres hex são o endereço sem o prefixo
41) e data é o valor. receipt.result é SUCCESS para uma transferência que foi concluída. O
filtro acima fica com as chamadas diretas ao contrato USDT; para pegar também USDT movimentado por
outros contratos, verifique em vez disso o address de cada entrada do log —
a614f803b6fd780986a42c78ec9c7f77e6ded13c para o USDT.
Um novo bloco chega a cada 3 segundos, aproximadamente. Guarde o último bloco que você processou e
busque os recibos de cada número depois dele, para que uma consulta lenta nunca pule um bloco. Os
recibos de um bloco a mais de 20 abaixo da ponta já não são recentes e são cobrados pelo tamanho —
veja Unidades de cota.