首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在solidity智能契约中与TRC20令牌交互

在solidity智能契约中与TRC20令牌交互
EN

Stack Overflow用户
提问于 2022-08-19 16:56:10
回答 2查看 271关注 0票数 0

什么是正确的方法来检查,例如,在该合同中的一个给定的智能合同的USDT平衡?

对于TRX天平,你可以直接做

uint256 balance = address(this).balance;

但是,你如何将这个SC的USDT平衡称为?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-21 13:47:48

好吧,我终于想明白了。为了与令牌契约进行交互,您需要两件事:

  • ,一个令牌,就是管理供应的智能契约,允许进行操作并跟踪分配等等。
  • 您的智能契约中所谓的接口,以便能够与所述令牌智能契约交互。

第一个是您选择的令牌契约地址,因此应该很容易,在您想要的newtork上按名称搜索它,您将找到它的主合同地址。例如,对于在Tron上的USDT,它是: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t (这里)。

第二步,您只需要在合同的顶部添加一段代码,如下所示。首先是关键字接口,然后是“合同标准”的名称(不管这意味着什么-这些区块链网络中使用的大多数概念似乎定义非常松散,而且似乎非常缺乏适当的文档),然后在您的内部引用您想要调用上述智能契约的所需功能,如下例所示。

代码语言:javascript
复制
interface IERC20 {
   function transfer(address _to, uint256 _value) external returns (bool);
   function balanceOf(address account) external view returns (uint);
}

最后一步是使用契约初始化接口,比如在OOP中创建一个新对象。

代码语言:javascript
复制
IERC20 usdt = IERC20(address("token smart contract address in hex format"));

最后,要与令牌智能契约交互,只需传递适当的参数,就像提供的函数一样。例如,要检查钱包地址的令牌余额,请执行以下操作:

代码语言:javascript
复制
uint256 usdtBalance = usdt.balanceOf('your wallet address in hex format');

实现上面的代码基本上会给您两个契约,tronIDE或remix可以部署,但是您只需要部署自己的,而不是IERC20接口,一切都会正常工作。

希望这能帮上忙。

票数 1
EN

Stack Overflow用户

发布于 2022-08-20 02:49:41

为了使用真实世界的数据,如美元价格,这是脱轨和变化..。你需要使用预言来获取数据。

对于美元价格,你可以使用分散的预言像链结..。

参考..。

https://docs.chain.link/docs/get-the-latest-price/

https://www.youtube.com/watch?v=ZJfkNzyO7-U

https://www.youtube.com/watch?v=PSJarTvQvtE

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73419995

复制
相关文章

相似问题

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