Created
August 9, 2022 09:25
-
-
Save wenjoy/e2ce437dbf4e05629f618c6291b2542a to your computer and use it in GitHub Desktop.
Revisions
-
wenjoy created this gist
Aug 9, 2022 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,100 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 <0.9.0; contract WorldToken { uint256 _totalSupply; address payable owner; mapping(address => uint256) balances; mapping(address => mapping(address => uint256)) allowed; string public name; string public symbol; constructor(uint256 totalSupply) { _totalSupply = totalSupply; owner = payable(msg.sender); balances[msg.sender] = _totalSupply; name = "WorldToken"; symbol = "WOT"; } function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } function transfer(address _to, uint256 _value) public returns (bool success) { require(_value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender] - _value; balances[_to] = balances[_to] + _value; emit Transfer(msg.sender, _to, _value); return true; } function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from] - _value; allowed[_from][msg.sender] = allowed[_from][msg.sender] - _value; balances[_to] = balances[_to] + _value; emit Transfer(_from, _to, _value); return true; } function approve(address _spender, uint256 _value) public returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender] + _value; emit Approval(msg.sender, _spender, _value); return true; } function allowance(address _owner, address _spender) public view returns (uint256 remaining) { return allowed[_owner][_spender]; } function buyTokens() public payable returns (bool success) { require(msg.value > 0); uint256 num_of_tokens = ((msg.value / 1000000000000000000) * 10); balances[msg.sender] = balances[msg.sender] + num_of_tokens; balances[owner] = balances[owner] - num_of_tokens; owner.transfer(msg.value); return true; } // what is purpose of this function? function recieve() public payable { require(msg.value > 0); uint256 num_of_tokens = ((msg.value / 1000000000000000000) * 10); balances[msg.sender] = balances[msg.sender] + num_of_tokens; balances[owner] = balances[owner] - num_of_tokens; owner.transfer(msg.value); } event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); }