-
Notifications
You must be signed in to change notification settings - Fork 0
/
QRC20_v1.sol
128 lines (106 loc) · 3.63 KB
/
QRC20_v1.sol
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
pragma solidity ^0.4.19;
//this is the compiler version//
contract BIGToken {
//this is the token contract name, change to liking//
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
event Burn(address indexed from, uint256 value);
string public constant symbol = "BIG";
//this is the token symbol, change to liking//
string public constant name = "BigCoin";
//this is the token name, change to liking//
uint8 public constant decimals = 0;
//this is the number of decimal place for the token, change to liking//
uint256 _totalSupply = 1000000;
//this is the total supply of token to be created, change to liking//
uint256 _totalBurned = 0;
address public owner;
mapping(address => uint256) balances;
mapping(address => mapping (address => uint256)) allowed;
modifier onlyOwner()
{
if (msg.sender != owner)
{
throw;
}
_;
}
function BIGToken()
//this is the token contract name, change to liking//
{
owner = msg.sender;
balances[owner] = _totalSupply;
}
function totalSupply() constant returns (uint256 l_totalSupply)
{
l_totalSupply = _totalSupply;
}
function totalBurned() constant returns (uint256 l_totalBurned)
{
l_totalBurned = _totalBurned;
}
function balanceOf(address _owner) constant returns (uint256 balance)
{
return balances[_owner];
}
function transfer(address _to, uint256 _amount) returns (bool success)
{
if (_to == 0x0) throw;
if (balances[msg.sender] >= _amount && _amount > 0 && balances[_to] + _amount > balances[_to])
{
balances[msg.sender] -= _amount;
balances[_to] += _amount;
Transfer(msg.sender, _to, _amount);
return true;
}
else
{
return false;
}
}
function transferFrom(address _from, address _to, uint256 _amount) returns (bool success)
{
if (_to == 0x0) throw;
if (balances[_from] >= _amount && allowed[_from][msg.sender] >= _amount && _amount > 0 && balances[_to] + _amount > balances[_to])
{
balances[_from] -= _amount;
allowed[_from][msg.sender] -= _amount;
balances[_to] += _amount;
Transfer(_from, _to, _amount);
return true;
}
else
{
return false;
}
}
function approve(address _spender, uint256 _amount) returns (bool success)
{
allowed[msg.sender][_spender] = _amount;
Approval(msg.sender, _spender, _amount);
return true;
}
function allowance(address _owner, address _spender) constant returns (uint256 remaining)
{
return allowed[_owner][_spender];
}
function burn(uint256 _value) returns (bool success)
{
if (balances[msg.sender] < _value) throw;
balances[msg.sender] -= _value;
_totalSupply -= _value;
_totalBurned += _value;
Burn(msg.sender, _value);
return true;
}
function burnFrom(address _from, uint256 _value) returns (bool success)
{
if (balances[_from] < _value) throw;
if (_value > allowed[_from][msg.sender]) throw;
balances[_from] -= _value;
_totalSupply -= _value;
_totalBurned += _value;
Burn(_from, _value);
return true;
}
}