🤢
Tron
  • Mastering TRON
  • Introduction
    • TRON 引言
    • TRON 基础
    • 节点客户端
    • 钱包
    • 交易(内置合约类型)
    • API
    • 开发者资源
  • Internals
    • 超级代表和投票
    • 产块和维护周期
    • 提案和链升级
  • Smart Contract
    • 什么是智能合约
    • Solidity 基础
    • Solidity 进阶
    • Solidity ABI
    • Use Solidity Like a Professional
    • 合约编程误区
    • Tooling
    • TVM
  • TRON by Example
    • Generate Address Offline
    • Transfer TRX
    • Transfer TRC20
    • Parse Event Logs
    • Estimate Energy Usage
    • Call Justswap
    • Query TRC20 Balance
  • Next Generation TRON
    • Current Tech that Benifits Blockchain
由 GitBook 提供支持
在本页
  • Python
  • Java
  • JavaScript (method 1)
  • JavaScript (method 2)
  • Add Memo to TRC20 Transfer?

这有帮助吗?

  1. TRON by Example

Transfer TRC20

上一页Transfer TRX下一页Parse Event Logs

最后更新于4年前

这有帮助吗?

Python

ref:

ref:

# DELETED

Java

ref:

JavaScript (method 1)

const TronWeb = require('tronweb');
const HttpProvider = TronWeb.providers.HttpProvider;
const fullNode = new HttpProvider("https://api.trongrid.io");
// const fullNode = new HttpProvider("http://192.168.1.162:8090");
const solidityNode = new HttpProvider("https://api.trongrid.io");
const eventServer = new HttpProvider("https://api.trongrid.io");
const privateKey = "3481E79956D4BD95F......C132F78A847906DE588C145";
const tronWeb = new TronWeb(fullNode, solidityNode, eventServer, privateKey);


const CONTRACT = "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t";

const ACCOUNT = "TEQH6py1Pi8YHNgi9cPMHCKLboBTUZrsYT";

async function main() {
    const {
        abi
    } = await tronWeb.trx.getContract(CONTRACT);
    // console.log(JSON.stringify(abi));

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

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

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

main().then(() => {
        console.log("ok");
    })
    .catch((err) => {
        console.log("error:", err);
    });

JavaScript (method 2)

const TronWeb = require('tronweb');
const HttpProvider = TronWeb.providers.HttpProvider;
const fullNode = new HttpProvider("https://api.trongrid.io");
// const fullNode = new HttpProvider("http://192.168.1.162:8090");
const solidityNode = new HttpProvider("https://api.trongrid.io");
const eventServer = new HttpProvider("https://api.trongrid.io");
const privateKey = "3481E79956D4BD95F3..........78A847906DE588C145";
const tronWeb = new TronWeb(fullNode, solidityNode, eventServer, privateKey);


const CONTRACT = "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"; // USDT
const ACCOUNT = "TEQH6py1Pi8YHNgi9cPMHCKLboBTUZrsYT";

async function main() {
    let {
        transaction,
        result
    } = await tronWeb.transactionBuilder.triggerSmartContract(
        CONTRACT, 'transfer(address,uint256)', {
            feeLimit: 1_000_000,
            callValue: 0
        },
        [{
            type: 'address',
            value: ACCOUNT
        }, {
            type: 'uint256',
            value: 1000000
        }]
    );
    if (!result.result) {
        console.error("error:", result);
        return;
    }
    console.log("transaction =>", JSON.stringify(transaction, null, 2));

    const signature = await tronWeb.trx.sign(transaction.raw_data_hex);
    console.log("Signature:", signature);
    transaction["signature"] = [signature];

    const broadcast = await tronWeb.trx.sendRawTransaction(transaction);
    console.log("result:", broadcast);

    const {
        message
    } = broadcast;
    if (message) {
        console.log("Error:", Buffer.from(message, 'hex').toString());
    }
}

main().then(() => {
        console.log("ok");
    })
    .catch((err) => {
        console.trace(err);
    });

Add Memo to TRC20 Transfer?

// use tronWeb.transactionBuilder.triggerSmartContract() with 
const unSignedTxnWithNote = await tronWeb.transactionBuilder.addUpdateData(unSignedTxn, memo, 'utf8');
const signedTxn = await tronWeb.trx.sign(unSignedTxnWithNote);
const ret = await tronWeb.trx.sendRawTransaction(signedTxn);
https://tronpy.readthedocs.io/en/latest/
https://tronpy.readthedocs.io/en/latest/contract.html#trigger-call
https://github.com/KI5FPL/tronj/blob/master/client/src/test/java/com/github/ki5fpl/tronj/client/ClientTest.java#L39