Advertisement
Guest User

FTT Tkn without comments

a guest
Jan 3rd, 2023
671
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.38 KB | None | 0 0
  1. pragma solidity ^0.5.2;
  2.  
  3. interface IERC20 {
  4. function transfer(address to, uint256 value) external returns (bool);
  5.  
  6. function approve(address spender, uint256 value) external returns (bool);
  7.  
  8. function transferFrom(address from, address to, uint256 value) external returns (bool);
  9.  
  10. function totalSupply() external view returns (uint256);
  11.  
  12. function balanceOf(address who) external view returns (uint256);
  13.  
  14. function allowance(address owner, address spender) external view returns (uint256);
  15.  
  16. event Transfer(address indexed from, address indexed to, uint256 value);
  17.  
  18. event Approval(address indexed owner, address indexed spender, uint256 value);
  19. }
  20.  
  21.  
  22. pragma solidity ^0.5.2;
  23.  
  24. library SafeMath {
  25. function mul(uint256 a, uint256 b) internal pure returns (uint256) {
  26. if (a == 0) {
  27. return 0;
  28. }
  29.  
  30. uint256 c = a * b;
  31. require(c / a == b);
  32.  
  33. return c;
  34. }
  35.  
  36. function div(uint256 a, uint256 b) internal pure returns (uint256) {
  37. require(b > 0);
  38. uint256 c = a / b;
  39.  
  40. return c;
  41. }
  42.  
  43. function sub(uint256 a, uint256 b) internal pure returns (uint256) {
  44. require(b <= a);
  45. uint256 c = a - b;
  46.  
  47. return c;
  48. }
  49.  
  50. function add(uint256 a, uint256 b) internal pure returns (uint256) {
  51. uint256 c = a + b;
  52. require(c >= a);
  53.  
  54. return c;
  55. }
  56.  
  57. function mod(uint256 a, uint256 b) internal pure returns (uint256) {
  58. require(b != 0);
  59. return a % b;
  60. }
  61. }
  62.  
  63.  
  64. pragma solidity ^0.5.2;
  65.  
  66. contract ERC20 is IERC20 {
  67. using SafeMath for uint256;
  68.  
  69. mapping (address => uint256) private _balances;
  70.  
  71. mapping (address => mapping (address => uint256)) private _allowed;
  72.  
  73. uint256 private _totalSupply;
  74.  
  75. function totalSupply() public view returns (uint256) {
  76. return _totalSupply;
  77. }
  78.  
  79. function balanceOf(address owner) public view returns (uint256) {
  80. return _balances[owner];
  81. }
  82.  
  83. function allowance(address owner, address spender) public view returns (uint256) {
  84. return _allowed[owner][spender];
  85. }
  86.  
  87. function transfer(address to, uint256 value) public returns (bool) {
  88. _transfer(msg.sender, to, value);
  89. return true;
  90. }
  91.  
  92. function approve(address spender, uint256 value) public returns (bool) {
  93. _approve(msg.sender, spender, value);
  94. return true;
  95. }
  96.  
  97. function transferFrom(address from, address to, uint256 value) public returns (bool) {
  98. _transfer(from, to, value);
  99. _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
  100. return true;
  101. }
  102.  
  103. function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
  104. _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));
  105. return true;
  106. }
  107.  
  108. function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
  109. _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));
  110. return true;
  111. }
  112.  
  113. function _transfer(address from, address to, uint256 value) internal {
  114. require(to != address(0));
  115.  
  116. _balances[from] = _balances[from].sub(value);
  117. _balances[to] = _balances[to].add(value);
  118. emit Transfer(from, to, value);
  119. }
  120.  
  121. function _mint(address account, uint256 value) internal {
  122. require(account != address(0));
  123.  
  124. _totalSupply = _totalSupply.add(value);
  125. _balances[account] = _balances[account].add(value);
  126. emit Transfer(address(0), account, value);
  127. }
  128.  
  129. function _burn(address account, uint256 value) internal {
  130. require(account != address(0));
  131.  
  132. _totalSupply = _totalSupply.sub(value);
  133. _balances[account] = _balances[account].sub(value);
  134. emit Transfer(account, address(0), value);
  135. }
  136.  
  137. function _approve(address owner, address spender, uint256 value) internal {
  138. require(spender != address(0));
  139. require(owner != address(0));
  140.  
  141. _allowed[owner][spender] = value;
  142. emit Approval(owner, spender, value);
  143. }
  144.  
  145. function _burnFrom(address account, uint256 value) internal {
  146. _burn(account, value);
  147. _approve(account, msg.sender, _allowed[account][msg.sender].sub(value));
  148. }
  149. }
  150.  
  151.  
  152. pragma solidity ^0.5.2;
  153.  
  154.  
  155. contract ERC20Detailed is IERC20 {
  156. string private _name;
  157. string private _symbol;
  158. uint8 private _decimals;
  159.  
  160. constructor (string memory name, string memory symbol, uint8 decimals) public {
  161. _name = name;
  162. _symbol = symbol;
  163. _decimals = decimals;
  164. }
  165.  
  166. function name() public view returns (string memory) {
  167. return _name;
  168. }
  169.  
  170. function symbol() public view returns (string memory) {
  171. return _symbol;
  172. }
  173.  
  174. function decimals() public view returns (uint8) {
  175. return _decimals;
  176. }
  177. }
  178.  
  179.  
  180. pragma solidity ^0.5.2;
  181.  
  182.  
  183. contract ERC20Burnable is ERC20 {
  184. function burn(uint256 value) public {
  185. _burn(msg.sender, value);
  186. }
  187.  
  188. function burnFrom(address from, uint256 value) public {
  189. _burnFrom(from, value);
  190. }
  191. }
  192.  
  193.  
  194. pragma solidity ^0.5.0;
  195.  
  196. contract FTT is ERC20, ERC20Detailed, ERC20Burnable {
  197. constructor() ERC20Detailed('FTT', 'FTX Token', 18) public {
  198. _mint(msg.sender, 350_000_000 * 10 ** 18);
  199. }
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement