-
Notifications
You must be signed in to change notification settings - Fork 97
/
Copy path0x45e42d659d9f9466cd5df622506033145a9b89bc-NxC-Nexium.sol
94 lines (71 loc) · 2.98 KB
/
0x45e42d659d9f9466cd5df622506033145a9b89bc-NxC-Nexium.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
contract tokenSpender { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData); }
contract Nexium {
/* Public variables of the token */
string public name;
string public symbol;
uint8 public decimals;
uint256 public initialSupply;
address public burnAddress;
/* This creates an array with all balances */
mapping (address => uint) public balanceOf;
mapping (address => mapping (address => uint)) public allowance;
/* This generates a public event on the blockchain that will notify clients */
event Transfer(address indexed from, address indexed to, uint value);
event Approval(address indexed from, address indexed spender, uint value);
/* Initializes contract with initial supply tokens to the creator of the contract */
function Nexium() {
initialSupply = 100000000000;
balanceOf[msg.sender] = initialSupply; // Give the creator all initial tokens
name = 'Nexium'; // Set the name for display purposes
symbol = 'NxC'; // Set the symbol for display purposes
decimals = 3; // Amount of decimals for display purposes
burnAddress = 0x1b32000000000000000000000000000000000000;
}
function totalSupply() returns(uint){
return initialSupply - balanceOf[burnAddress];
}
/* Send coins */
function transfer(address _to, uint256 _value)
returns (bool success) {
if (balanceOf[msg.sender] >= _value && _value > 0) {
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
Transfer(msg.sender, _to, _value);
return true;
} else return false;
}
/* Allow another contract to spend some tokens in your behalf */
function approveAndCall(address _spender,
uint256 _value,
bytes _extraData)
returns (bool success) {
allowance[msg.sender][_spender] = _value;
tokenSpender spender = tokenSpender(_spender);
spender.receiveApproval(msg.sender, _value, this, _extraData);
Approval(msg.sender, _spender, _value);
return true;
}
/*Allow another adress to use your money but doesn't notify it*/
function approve(address _spender, uint256 _value) returns (bool success) {
allowance[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
/* A contract attempts to get the coins */
function transferFrom(address _from,
address _to,
uint256 _value)
returns (bool success) {
if (balanceOf[_from] >= _value && allowance[_from][msg.sender] >= _value && _value > 0) {
balanceOf[_to] += _value;
Transfer(_from, _to, _value);
balanceOf[_from] -= _value;
allowance[_from][msg.sender] -= _value;
return true;
} else return false;
}
/* This unnamed function is called whenever someone tries to send ether to it */
function () {
throw; // Prevents accidental sending of ether
}
}