本文介绍了我如何在我的网站中识别转账令牌的类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建一个Dex网站,具有Solidity、Web3、tronweb和NodeJS。
现在我有一个关于TRC-20和ERC-20网络中的传输令牌的问题。
在我的网站上,用户可以存放来自bianance , coinbase , . . .
等其他站点的钱包,我创建了TRC-20或ERC-20他/她的钱包地址。在两个网络中都存在许多令牌,我的问题是,我如何知道用户发送或接收了哪个令牌?
可能用户希望从其他网站发送ADA
令牌,就像binance
在我的网站上一样。
我像这样为用户创建了一个ERC-20钱包地址0x5226a51522C23CcBEFd04a2d4C6c8e281eD1d680
,
用户在二进制文件中输入此地址,并将一些ADA
令牌发送到他在我的网站中的钱包。
现在我如何知道此内标识是ADA
、USDT
或其他标记?
eRc
对于每个evm兼容网络(以太、TRON、bsc等),您需要创建推荐答案-20令牌的Transfer()
事件的侦听器。
web3.eth.subscribe("logs", {
address: [
"0xdac17f958d2ee523a2206206994597c13d831ec7", // Ethereum USDT address
// can add other tokens
],
topics: [
// keccak256 hash of the "Transfer(address,address,uint256)" event signature
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
]
}, (err, event) => {
console.log(event);
});
您可以在Web3docs中找到有关subscribe()
函数的更多信息,例如如何仅筛选到您的地址的传输(此代码段侦听您可能不需要的所有传输)。
对于它们自己的区块链上的令牌(如ADA),您将需要实现一个用于传输的自定义侦听器。监听程序的体系结构在每个网络上可能需要不同--可能有些监听程序有在传输中发出事件的方法,而有些监听程序需要扫描每个块才能将事务发送到您的地址。
请记住,一些加密货币基于多个网络。例如,USDT在Ethereum、Tron、BSC和其他(来源:USDT的CMCdetail page,SELECTBOX;EXPLOERS&QOOT;)上有自己的令牌。因此,如果您允许用户在任何网络上转接您USDT
,您将需要监听所有这些网络上的传入转接。
这篇关于我如何在我的网站中识别转账令牌的类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!