首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >双向智能合同交换

双向智能合同交换
EN

Ethereum用户
提问于 2018-02-01 04:37:26
回答 1查看 573关注 0票数 1

需要一份聪明的合同,把ERC20换成以太,以太换成ERC20。

目标是,你发送以太,你得到erc20,你发送erc20,你得到乙醚。而不必使用web3工具。

我认为实现的唯一方法是使用ERC20本身作为交换契约。

然后,令牌地址必须同时保存以太和它自己的令牌。

这听起来像是很糟糕的练习,还是真的?有什么更好的办法来实现这一点吗?

EN

回答 1

Ethereum用户

发布于 2018-02-01 05:11:32

你当然可以把它们结合起来,但我认为有第二份合同更有意义。这样,ERC20令牌契约保持简单,只关注令牌接口。

做销售的合同只需要两个处理令牌合同的功能。在伪码中,忽略错误检查等。

代码语言:javascript
复制
buyTokens():
    howMany = msg.value / pricePerToken * 10**decimals
    tokenContract.transfer(msg.sender, howMany)

sellTokens(howMany):
    // Caller will need to first approve() that many tokens
    tokenContract.transferFrom(msg.sender, howMany * 10**decimals)

    msg.sender.transfer(howMany * pricePerToken)
票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/38171

复制
相关文章

相似问题

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