首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TronLink传输TRC-20令牌

使用TronLink传输TRC-20令牌
EN

Stack Overflow用户
提问于 2021-02-08 21:43:58
回答 1查看 3.7K关注 0票数 0

请尝试通过点击我的网站上的一个按钮来整合使用tronlink发送任何trc20令牌。我能够使用下面的JavaScript代码发送TRX,但是我希望能够像USDT一样发送trc-20,任何帮助都将是非常感谢的。谢谢

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    </head>
    <body>
        <div>
            <input type="text" name="numb" id="numb">
            <button onclick="sendtron()">Can you get tronweb from tronlink?</button>
      </div>
    <script>
        function sendtron(){
        var obj = setInterval(async ()=>{
            if (window.tronWeb && window.tronWeb.defaultAddress.base58) {
                clearInterval(obj)
                var tronweb = window.tronWeb
                var amount = document.querySelector('#numb').value;
                var tokens = amount * 1000000
                var tx = await tronweb.trx.sendTransaction("TWs2Z7dLMcPnXi9pnWqCUPzAnqUv6T54dy", tokens)
                var signedTx = await tronweb.trx.sign(tx)
                var broastTx = await tronweb.trx.sendRawTransaction(signedTx)
                console.log(broastTx);
                
            }
        });
    }
    </script>
    </body>
</html>

EN

回答 1

Stack Overflow用户

发布于 2021-02-11 07:17:09

TRC20实际上是聪明的合同。tronscan USDT链接将TRC20从您的地址传输到另一个地址,您将调用To 20的传输函数,下面是Tron代码的片段。

代码语言:javascript
复制
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合同交互文档。您可以使用tronWeb的triggerSmartContract函数创建原始事务、签名和广播。

  1. 创建原始事务
代码语言:javascript
复制
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格式的,我们需要在transactionObject上使用tronweb.address.toHex(address)将其转换为十六进制格式。parameter变量是我们设置接收方地址和数量的地方。

  1. 签名
代码语言:javascript
复制
var signedTransaction = await tronWeb.trx.sign(transactionObject.transaction);
  1. 广播
代码语言:javascript
复制
var broadcastTransaction = await tronWeb.trx.sendRawTransaction(signedTransaction);
console.log(broadcastTransaction); 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66109815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档