-
Notifications
You must be signed in to change notification settings - Fork 5
/
EDUToken.sol
49 lines (36 loc) · 1.89 KB
/
EDUToken.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
pragma solidity ^0.4.24;
import "openzeppelin-solidity/contracts/token/ERC20/BurnableToken.sol";
import "openzeppelin-solidity/contracts/token/ERC827/ERC827Token.sol";
import "openzeppelin-solidity/contracts/math/SafeMath.sol";
import "./kyc/KYCToken.sol";
contract EDUToken is BurnableToken, KYCToken, ERC827Token {
using SafeMath for uint256;
string public constant name = "EDU Token";
string public constant symbol = "EDU";
uint8 public constant decimals = 18;
uint256 public constant INITIAL_SUPPLY = 48000000 * (10 ** uint256(decimals));
constructor(address _certifier) public KYCToken(_certifier) {
totalSupply_ = INITIAL_SUPPLY;
balances[msg.sender] = INITIAL_SUPPLY;
emit Transfer(0x0, msg.sender, INITIAL_SUPPLY);
}
function transfer(address _to, uint256 _value) public isKnownCustomer(msg.sender) returns (bool) {
return super.transfer(_to, _value);
}
function transferFrom(address _from, address _to, uint256 _value) public isKnownCustomer(_from) returns (bool) {
return super.transferFrom(_from, _to, _value);
}
function approve(address _spender, uint256 _value) public isKnownCustomer(_spender) returns (bool) {
return super.approve(_spender, _value);
}
function increaseApproval(address _spender, uint _addedValue) public isKnownCustomer(_spender) returns (bool success) {
return super.increaseApproval(_spender, _addedValue);
}
function decreaseApproval(address _spender, uint _subtractedValue) public isKnownCustomer(_spender) returns (bool success) {
return super.decreaseApproval(_spender, _subtractedValue);
}
function delayedTransferFrom(address _tokenWallet, address _to, uint256 _value) public onlyManager returns (bool) {
transferFrom(_tokenWallet, _to, _value);
kycPending[_to] = true;
}
}