兑换合约 = 交易所? / 学习智能合约#16

兑换合约 = 交易所? / 学习智能合约#16

exchange.jpg

如果你已在自己的网站中发行了基于以太坊的代币,但是还没有上交易所,那么,你要如何与其他人交易你的代币呢?

以太币和代币之间的交易可以理解为一个兑换合约,其实质是ICO的思路! 你给他转以太币,他给你转代币,还不就是ICO合约嘛。嗯,赶紧把《ICO合约》翻出来整整。

改造好的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
pragma solidity >=0.4.22 <0.7.0;

interface TokenToExchange {
function transfer(address _to, uint256 _value) external returns (bool success);
function transferFromOrigin(address _to, uint256 _value) external returns (bool success);
}

contract Exchange {
TokenToExchange token = TokenToExchange(0x991F313230940ab48f9Ea8B04084FA790B882b53);

uint public price = 10000; //1eth=10000lark

//给合约转以太币以换取代币
receive() external
payable
{
token.transfer(msg.sender, msg.value * price);
}

fallback () external payable { }

function larkToEth(uint _amount)
public
payable
{
token.transferFromOrigin(address(this), _amount);
msg.sender.transfer(_amount / price);
}

function getThis()
public
view
returns(address)
{
return address(this);
}

}

代码还蛮简洁的,两个简单的函数就可以实现以太币和代币之间的兑换。 这确实是以太坊擅长的事情!

按这个思路进一步下去,只要设定好价格,以太币和任何代币都可以兑换,这不就是去中心化的交易所嘛!所以,基于以太坊,你开发个代币交易所还是很容易的,聪明睿智的你有把握到关键点么!


This page is synchronized from the post: ‘兑换合约 = 交易所? / 学习智能合约#16’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×