因此,我有一个合同,允许您用ETH交换我的自定义ERC20令牌。我现在想将该自定义ERC20令牌与其他智能合约一起使用。有没有一种特定的方式来指定自定义令牌与ETH?
示例:
pragma solidity ^0.4.24;
/* *-使用方法:* 1.向智能合约地址发送任意数量的超令牌* 2.通过发送0超交易(1次/小时)来认领您的利润* 3.如果您没有提现且赚取超过200%,则只能超过200%津贴提现一次*/ contract HyperLENDtest {
using SafeMath for uint;
mapping(address => uint) public balance;
mapping(address => uint) public time;
mapping(address => uint) public percentWithdraw;
mapping(address => uint) public allPercentWithdraw;函数percentRate()公共视图返回( uint ){uint contractBalance = address(this).balance;
if (contractBalance < 100 ether) {
return (20);
}
if (contractBalance >= 500 ether && contractBalance < 1000 ether) {
return (40);
}
if (contractBalance >= 1000 ether && contractBalance < 2000 ether) {
return (60);
}
if (contractBalance >= 2000 ether) {
return (80);
}我不想返回ERC20令牌,而是使用我的自定义ERC20令牌发送给用户,并返回ERC20令牌的返回值%。
发布于 2021-04-05 04:46:23
例如,考虑一个电子商务业务。所以我这样做的方式是:
在这个业务案例中,假设我们为每个Ether提供100个令牌。用户将2个Ether传递给合同,然后将200个业务令牌放入合同的
mapping(address => uint) accounts。
考虑到这一点,下面的代码将为您提供200:
accounts[customer_address] //(returns 200)
,
这样,您的用户正在使用您之前购买的令牌,甚至没有考虑到Ether。请记住,汽油费是必须支付的。因此,要么你付钱,要么你的客户会(把它包括在商品的价格上)。
希望这对有同样问题的人有所帮助:)
发布于 2018-11-15 12:14:30
您的合同只是另一个地址,所以是的,您可以向您的合同发送令牌。但是你不能用你发送的方式发送它们,那就是使用一个payable函数。您必须使用ERC-20令牌的传输方法将令牌传输到合同的地址。要将合同中的令牌发送给其他人,您必须在合同中调用transfer,除非您做了一些事情,例如为您的帐户提供大量津贴,但我不建议这样做。在this帖子中解释了如何准确地从其他合同中调用ERC-20中的方法。
https://stackoverflow.com/questions/53308858
复制相似问题