Skip to content

Commit 52d5083

Browse files
committed
update contracts
1 parent 1d5a286 commit 52d5083

9 files changed

+171
-99
lines changed

GameManager.sol

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
pragma solidity ^0.4.23;
2+
3+
import "./IGameManager.sol";
4+
import "./IGame.sol";
5+
import "./ITRC20.sol";
6+
import "./GameRole.sol";
7+
8+
contract GameManager is GameRole, IGameManager {
9+
10+
function createBet(address game, address player, uint refUserId, bytes32[] data) public payable {
11+
require(games[game]);
12+
IGame(game).createBet(msg.sender, player, msg.value, refUserId, data);
13+
}
14+
15+
function transferTo(address player, uint amount) public onlyGame {
16+
require(player != address(0));
17+
player.transfer(amount);
18+
}
19+
20+
function transferTokenTo(address token, address to, uint amount) public onlyGame {
21+
ITRC20(token).transfer(to, amount);
22+
}
23+
24+
}

GameRole.sol

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
pragma solidity ^0.4.23;
2+
import "./Ownable.sol";
3+
4+
contract GameRole is Ownable {
5+
6+
modifier onlyGame {
7+
require(games[msg.sender]);
8+
_;
9+
}
10+
11+
mapping(address => bool) public games;
12+
13+
function addGame(address game) public onlyOwner {
14+
games[game] = true;
15+
}
16+
17+
function removeGame(address game) public onlyOwner {
18+
games[game] = false;
19+
}
20+
}

IApproveAndCallFallback.sol

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pragma solidity ^0.4.23;
2+
3+
interface IApproveAndCallFallback {
4+
function receiveApproval(address _from, uint _value, address _token, bytes _data) external;
5+
}

IGame.sol

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pragma solidity ^0.4.23;
2+
3+
interface IGame {
4+
function createBet(address from, address to, uint amount, uint refUserId, bytes32[] data) external;
5+
}

IGameManager.sol

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
pragma solidity ^0.4.23;
2+
3+
interface IGameManager {
4+
function transferTo(address player, uint amount) external;
5+
6+
function transferTokenTo(address token, address to, uint amount) external;
7+
}

ITRC20.sol

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
pragma solidity ^0.4.23;
2+
3+
interface ITRC20 {
4+
function totalSupply() external view returns (uint);
5+
6+
function balanceOf(address owner) external view returns (uint);
7+
8+
function allowance(address owner, address spender) external view returns (uint);
9+
10+
function transfer(address to, uint value) external returns (bool);
11+
12+
function approve(address spender, uint value) external returns (bool);
13+
14+
function transferFrom(address from, address to, uint value) external returns (bool);
15+
16+
event Transfer(address indexed from, address indexed to, uint value);
17+
18+
event Approval(address indexed owner, address indexed spender, uint value);
19+
}

IUsers.sol

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pragma solidity ^0.4.23;
2+
3+
interface IUsers {
4+
function getUserIdToAddress(uint _userId) external view returns (address);
5+
}

Ownable.sol

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
pragma solidity ^0.4.23;
2+
3+
contract Ownable {
4+
address public owner;
5+
address public newOwner;
6+
7+
event OwnershipTransferred(address indexed _from, address indexed _to);
8+
9+
constructor() public {
10+
owner = msg.sender;
11+
}
12+
13+
modifier onlyOwner {
14+
require(msg.sender == owner);
15+
_;
16+
}
17+
18+
function transferOwnership(address _newOwner) public onlyOwner {
19+
newOwner = _newOwner;
20+
}
21+
22+
function acceptOwnership() public {
23+
require(msg.sender == newOwner);
24+
emit OwnershipTransferred(owner, newOwner);
25+
owner = newOwner;
26+
newOwner = address(0);
27+
}
28+
}

Token888.sol

+58-99
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
pragma solidity 0.4.23;
1+
pragma solidity ^0.4.23;
2+
3+
import "./ITRC20.sol";
4+
import "./IApproveAndCallFallback.sol";
5+
import "./Ownable.sol";
26

37
library SafeMath {
48
function add(uint a, uint b) internal pure returns (uint c) {
@@ -10,145 +14,100 @@ library SafeMath {
1014
require(b <= a);
1115
c = a - b;
1216
}
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-
}
2317
}
2418

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);
19+
contract Token888 is ITRC20, Ownable {
20+
using SafeMath for uint;
3721

38-
event Transfer(address indexed from, address indexed to, uint value);
22+
string public symbol = "888";
23+
string public name = "888Tron";
24+
uint8 public decimals = 6;
3925

40-
event Approval(address indexed tokenOwner, address indexed spender, uint value);
41-
}
26+
uint private _totalSupply = 100 * 1000000 * 10 ** uint(decimals);
4227

43-
contract ApproveAndCallFallBack {
44-
function receiveApproval(address from, uint256 value, address token, bytes memory data) public;
45-
}
28+
mapping(address => uint) private _balances;
4629

47-
contract Ownable {
48-
address public owner;
49-
address public newOwner;
30+
mapping(address => mapping(address => uint)) private _allowed;
5031

51-
event OwnershipTransferred(address indexed _from, address indexed _to);
52-
53-
constructor() public {
54-
owner = msg.sender;
32+
constructor () public {
33+
_balances[msg.sender] = _totalSupply;
34+
emit Transfer(address(0), msg.sender, _totalSupply);
5535
}
5636

57-
modifier onlyOwner {
58-
require(msg.sender == owner);
59-
_;
37+
function totalSupply() public view returns (uint) {
38+
return _totalSupply;
6039
}
6140

62-
function transferOwnership(address _newOwner) public onlyOwner {
63-
newOwner = _newOwner;
41+
function balanceOf(address owner) public view returns (uint) {
42+
return _balances[owner];
6443
}
6544

66-
function acceptOwnership() public {
67-
require(msg.sender == newOwner);
68-
emit OwnershipTransferred(owner, newOwner);
69-
owner = newOwner;
70-
newOwner = address(0);
45+
function allowance(address owner, address spender) public view returns (uint) {
46+
return _allowed[owner][spender];
7147
}
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;
8148

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);
49+
function transfer(address to, uint value) public returns (bool) {
50+
_transfer(msg.sender, to, value);
51+
return true;
9452
}
9553

96-
function totalSupply() public view returns (uint) {
97-
return _totalSupply;
54+
function approve(address spender, uint value) public returns (bool) {
55+
require(spender != address(0));
56+
57+
_allowed[msg.sender][spender] = value;
58+
emit Approval(msg.sender, spender, value);
59+
return true;
9860
}
9961

100-
function balanceOf(address tokenOwner) public view returns (uint balance) {
101-
return balances[tokenOwner];
62+
function transferFrom(address from, address to, uint value) public returns (bool) {
63+
_allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
64+
_transfer(from, to, value);
65+
emit Approval(from, msg.sender, _allowed[from][msg.sender]);
66+
return true;
10267
}
10368

104-
function transfer(address to, uint value) public returns (bool success) {
105-
require(to != address(0));
69+
function increaseAllowance(address spender, uint addedValue) public returns (bool) {
70+
require(spender != address(0));
10671

107-
balances[msg.sender] = balances[msg.sender].sub(value);
108-
balances[to] = balances[to].add(value);
109-
emit Transfer(msg.sender, to, value);
72+
_allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue);
73+
emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
11074
return true;
11175
}
11276

113-
function approve(address spender, uint value) public returns (bool success) {
114-
allowed[msg.sender][spender] = value;
115-
emit Approval(msg.sender, spender, value);
77+
function decreaseAllowance(address spender, uint subtractedValue) public returns (bool) {
78+
require(spender != address(0));
79+
80+
_allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue);
81+
emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
11682
return true;
11783
}
11884

119-
function transferFrom(address from, address to, uint value) public returns (bool success) {
85+
function _transfer(address from, address to, uint value) internal {
12086
require(to != address(0));
12187

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);
88+
_balances[from] = _balances[from].sub(value);
89+
_balances[to] = _balances[to].add(value);
12590
emit Transfer(from, to, value);
126-
return true;
12791
}
12892

129-
function allowance(address tokenOwner, address spender) public view returns (uint remaining) {
130-
return allowed[tokenOwner][spender];
93+
function burn(uint value) public {
94+
_totalSupply = _totalSupply.sub(value);
95+
_balances[msg.sender] = _balances[msg.sender].sub(value);
96+
emit Transfer(msg.sender, address(0), value);
13197
}
13298

133-
function approveAndCall(address spender, uint value, bytes memory data) public returns (bool success) {
134-
allowed[msg.sender][spender] = value;
99+
function approveAndCall(address spender, uint value, bytes memory data) public returns (bool) {
100+
_allowed[msg.sender][spender] = value;
135101
emit Approval(msg.sender, spender, value);
136-
ApproveAndCallFallBack(spender).receiveApproval(msg.sender, value, address(this), data);
102+
IApproveAndCallFallback(spender).receiveApproval(msg.sender, value, address(this), data);
137103
return true;
138104
}
139105

140106
function() external payable {
141107
revert();
142108
}
143109

144-
function transferAnyTRC20Token(address tokenAddress, uint value) public onlyOwner returns (bool success) {
145-
return TRC20Interface(tokenAddress).transfer(owner, value);
110+
function transferAnyTRC20Token(address tokenAddress, uint value) public onlyOwner returns (bool) {
111+
return ITRC20(tokenAddress).transfer(owner, value);
146112
}
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-
}
113+
}

0 commit comments

Comments
 (0)