Skip to content

Commit 1d5a286

Browse files
committed
token 888
0 parents  commit 1d5a286

File tree

1 file changed

+154
-0
lines changed

1 file changed

+154
-0
lines changed

Token888.sol

+154
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
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

Comments
 (0)