Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.5.0;
- contract MyToken{
- uint totalsupply;
- mapping (address => uint) tokenOwners;
- address owner;
- uint sellingRate;
- uint eth;
- constructor (uint _sellingRate) public{
- owner = msg.sender;
- if (_sellingRate == 0)
- {
- sellingRate = 1;
- }
- else
- {
- sellingRate = _sellingRate;
- }
- }
- function totalSupply() public view returns (uint){
- return totalsupply;
- }
- function changeRate(uint _sellingRate) public {
- require(msg.sender == owner);
- if (_sellingRate != 0)
- sellingRate = _sellingRate;
- else
- sellingRate = 1;
- }
- function balanceOf(address tokenOwner) public view returns (uint balance){
- return balance = tokenOwners[tokenOwner];
- }
- function transfer(address to, uint tokens) public returns (bool success){
- if (tokenOwners[msg.sender] >= tokens){
- tokenOwners[msg.sender] -= tokens;
- tokenOwners[to] += tokens;
- emit Transfer(msg.sender, to, tokens);
- return true;
- }
- else{
- return false;
- }
- }
- function () external payable{
- totalsupply += msg.value / sellingRate;
- tokenOwners[msg.sender] = msg.value / sellingRate;
- eth += msg.value;
- }
- function getETH() public{
- require(msg.sender == owner);
- (msg.sender).transfer(eth);
- eth = 0;
- }
- event Transfer(address indexed from, address indexed to, uint tokens);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement