Skip to content

Commit ae5a7ab

Browse files
author
hexing
committed
test
1 parent f7ee179 commit ae5a7ab

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
pragma solidity ^0.4.16;
2+
3+
contract EKT {
4+
5+
string public name = "EDUCare"; // token name
6+
string public symbol = "EKT"; // token symbol
7+
uint256 public decimals = 8; // token digit
8+
9+
mapping (address => uint256) public balanceOf;
10+
mapping (address => mapping (address => uint256)) public allowance;
11+
12+
uint256 public totalSupply = 0;
13+
14+
address owner = 0x0;
15+
16+
uint256 constant valueTotal = 10 * 10000 * 10000 * 100000000; //总量 10亿
17+
uint256 constant valueFounder = valueTotal / 100 * 50; // 基金会50%
18+
uint256 constant valueSale = valueTotal / 100 * 15; // ICO 15%
19+
uint256 constant valueVip = valueTotal / 100 * 20; // 私募 20%
20+
uint256 constant valueTeam = valueTotal / 100 * 15; // 团队与合作伙伴 15%
21+
22+
modifier isOwner {
23+
assert(owner == msg.sender);
24+
_;
25+
}
26+
27+
modifier validAddress(address _address) {
28+
assert(0x0 != _address);
29+
_;
30+
}
31+
32+
33+
function EKT(address _founder, address _sale, address _vip, address _team)
34+
public
35+
validAddress(_founder)
36+
validAddress(_sale)
37+
validAddress(_vip)
38+
validAddress(_team)
39+
{
40+
owner = msg.sender;
41+
totalSupply = valueTotal;
42+
43+
// 基金会
44+
balanceOf[_founder] = valueFounder;
45+
Transfer(0x0, _founder, valueFounder);
46+
47+
// ICO
48+
balanceOf[_sale] = valueSale;
49+
Transfer(0x0, _sale, valueSale);
50+
51+
// 私募
52+
balanceOf[_vip] = valueVip;
53+
Transfer(0x0, _vip, valueVip);
54+
55+
// 团队
56+
balanceOf[_team] = valueTeam;
57+
Transfer(0x0, _team, valueTeam);
58+
59+
}
60+
61+
function transfer(address _to, uint256 _value)
62+
public
63+
validAddress(_to)
64+
returns (bool success)
65+
{
66+
require(balanceOf[msg.sender] >= _value);
67+
require(balanceOf[_to] + _value >= balanceOf[_to]);
68+
balanceOf[msg.sender] -= _value;
69+
balanceOf[_to] += _value;
70+
Transfer(msg.sender, _to, _value);
71+
return true;
72+
}
73+
74+
function transferFrom(address _from, address _to, uint256 _value)
75+
public
76+
validAddress(_from)
77+
validAddress(_to)
78+
returns (bool success)
79+
{
80+
require(balanceOf[_from] >= _value);
81+
require(balanceOf[_to] + _value >= balanceOf[_to]);
82+
require(allowance[_from][msg.sender] >= _value);
83+
balanceOf[_to] += _value;
84+
balanceOf[_from] -= _value;
85+
allowance[_from][msg.sender] -= _value;
86+
Transfer(_from, _to, _value);
87+
return true;
88+
}
89+
90+
function approve(address _spender, uint256 _value)
91+
public
92+
validAddress(_spender)
93+
returns (bool success)
94+
{
95+
require(_value == 0 || allowance[msg.sender][_spender] == 0);
96+
allowance[msg.sender][_spender] = _value;
97+
Approval(msg.sender, _spender, _value);
98+
return true;
99+
}
100+
101+
102+
event Transfer(address indexed _from, address indexed _to, uint256 _value);
103+
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
104+
}

0 commit comments

Comments
 (0)