1
+ pragma solidity 0.4.23 ;
2
+
3
+ library SafeMath {
4
+ function add (uint a , uint b ) internal pure returns (uint c ) {
5
+ c = a + b;
6
+ require (c >= a);
7
+ }
8
+
9
+ function sub (uint a , uint b ) internal pure returns (uint c ) {
10
+ require (b <= a);
11
+ c = a - b;
12
+ }
13
+
14
+ function mul (uint a , uint b ) internal pure returns (uint c ) {
15
+ c = a * b;
16
+ require (a == 0 || c / a == b);
17
+ }
18
+
19
+ function div (uint a , uint b ) internal pure returns (uint c ) {
20
+ require (b > 0 );
21
+ c = a / b;
22
+ }
23
+ }
24
+
25
+ contract TRC20Interface {
26
+ function totalSupply () public view returns (uint );
27
+
28
+ function balanceOf (address tokenOwner ) public view returns (uint balance );
29
+
30
+ function allowance (address tokenOwner , address spender ) public view returns (uint remaining );
31
+
32
+ function transfer (address to , uint value ) public returns (bool success );
33
+
34
+ function approve (address spender , uint value ) public returns (bool success );
35
+
36
+ function transferFrom (address from , address to , uint value ) public returns (bool success );
37
+
38
+ event Transfer (address indexed from , address indexed to , uint value );
39
+
40
+ event Approval (address indexed tokenOwner , address indexed spender , uint value );
41
+ }
42
+
43
+ contract ApproveAndCallFallBack {
44
+ function receiveApproval (address from , uint256 value , address token , bytes memory data ) public ;
45
+ }
46
+
47
+ contract Ownable {
48
+ address public owner;
49
+ address public newOwner;
50
+
51
+ event OwnershipTransferred (address indexed _from , address indexed _to );
52
+
53
+ constructor () public {
54
+ owner = msg .sender ;
55
+ }
56
+
57
+ modifier onlyOwner {
58
+ require (msg .sender == owner);
59
+ _;
60
+ }
61
+
62
+ function transferOwnership (address _newOwner ) public onlyOwner {
63
+ newOwner = _newOwner;
64
+ }
65
+
66
+ function acceptOwnership () public {
67
+ require (msg .sender == newOwner);
68
+ emit OwnershipTransferred (owner, newOwner);
69
+ owner = newOwner;
70
+ newOwner = address (0 );
71
+ }
72
+ }
73
+
74
+ contract Token888 is TRC20Interface , Ownable {
75
+ using SafeMath for uint ;
76
+
77
+ string public symbol;
78
+ string public name;
79
+ uint8 public decimals;
80
+ uint _totalSupply;
81
+
82
+ mapping (address => uint ) balances;
83
+ mapping (address => mapping (address => uint )) allowed;
84
+
85
+ event Burn (uint256 value );
86
+
87
+ constructor () public {
88
+ symbol = "888 " ;
89
+ name = "888Tron " ;
90
+ decimals = 6 ;
91
+ _totalSupply = 100 * 1000000 * 10 ** uint (decimals);
92
+ balances[owner] = _totalSupply;
93
+ emit Transfer (address (0 ), owner, _totalSupply);
94
+ }
95
+
96
+ function totalSupply () public view returns (uint ) {
97
+ return _totalSupply;
98
+ }
99
+
100
+ function balanceOf (address tokenOwner ) public view returns (uint balance ) {
101
+ return balances[tokenOwner];
102
+ }
103
+
104
+ function transfer (address to , uint value ) public returns (bool success ) {
105
+ require (to != address (0 ));
106
+
107
+ balances[msg .sender ] = balances[msg .sender ].sub (value);
108
+ balances[to] = balances[to].add (value);
109
+ emit Transfer (msg .sender , to, value);
110
+ return true ;
111
+ }
112
+
113
+ function approve (address spender , uint value ) public returns (bool success ) {
114
+ allowed[msg .sender ][spender] = value;
115
+ emit Approval (msg .sender , spender, value);
116
+ return true ;
117
+ }
118
+
119
+ function transferFrom (address from , address to , uint value ) public returns (bool success ) {
120
+ require (to != address (0 ));
121
+
122
+ balances[from] = balances[from].sub (value);
123
+ allowed[from][msg .sender ] = allowed[from][msg .sender ].sub (value);
124
+ balances[to] = balances[to].add (value);
125
+ emit Transfer (from, to, value);
126
+ return true ;
127
+ }
128
+
129
+ function allowance (address tokenOwner , address spender ) public view returns (uint remaining ) {
130
+ return allowed[tokenOwner][spender];
131
+ }
132
+
133
+ function approveAndCall (address spender , uint value , bytes memory data ) public returns (bool success ) {
134
+ allowed[msg .sender ][spender] = value;
135
+ emit Approval (msg .sender , spender, value);
136
+ ApproveAndCallFallBack (spender).receiveApproval (msg .sender , value, address (this ), data);
137
+ return true ;
138
+ }
139
+
140
+ function () external payable {
141
+ revert ();
142
+ }
143
+
144
+ function transferAnyTRC20Token (address tokenAddress , uint value ) public onlyOwner returns (bool success ) {
145
+ return TRC20Interface (tokenAddress).transfer (owner, value);
146
+ }
147
+
148
+ function burn (uint256 value ) public onlyOwner returns (bool success ) {
149
+ balances[msg .sender ] = balances[msg .sender ].sub (value);
150
+ _totalSupply = _totalSupply.sub (value);
151
+ emit Burn (value);
152
+ return true ;
153
+ }
154
+ }
0 commit comments