什么是正确的方法来检查,例如,在该合同中的一个给定的智能合同的USDT平衡?
对于TRX天平,你可以直接做
uint256 balance = address(this).balance;
但是,你如何将这个SC的USDT平衡称为?
谢谢
发布于 2022-08-21 13:47:48
好吧,我终于想明白了。为了与令牌契约进行交互,您需要两件事:
第一个是您选择的令牌契约地址,因此应该很容易,在您想要的newtork上按名称搜索它,您将找到它的主合同地址。例如,对于在Tron上的USDT,它是: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t (这里)。
第二步,您只需要在合同的顶部添加一段代码,如下所示。首先是关键字接口,然后是“合同标准”的名称(不管这意味着什么-这些区块链网络中使用的大多数概念似乎定义非常松散,而且似乎非常缺乏适当的文档),然后在您的内部引用您想要调用上述智能契约的所需功能,如下例所示。
interface IERC20 {
function transfer(address _to, uint256 _value) external returns (bool);
function balanceOf(address account) external view returns (uint);
}最后一步是使用契约初始化接口,比如在OOP中创建一个新对象。
IERC20 usdt = IERC20(address("token smart contract address in hex format"));最后,要与令牌智能契约交互,只需传递适当的参数,就像提供的函数一样。例如,要检查钱包地址的令牌余额,请执行以下操作:
uint256 usdtBalance = usdt.balanceOf('your wallet address in hex format');实现上面的代码基本上会给您两个契约,tronIDE或remix可以部署,但是您只需要部署自己的,而不是IERC20接口,一切都会正常工作。
希望这能帮上忙。
发布于 2022-08-20 02:49:41
为了使用真实世界的数据,如美元价格,这是脱轨和变化..。你需要使用预言来获取数据。
对于美元价格,你可以使用分散的预言像链结..。
参考..。
https://docs.chain.link/docs/get-the-latest-price/
https://stackoverflow.com/questions/73419995
复制相似问题