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": {
"X/TOKEN.sol": {
"content": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.0;\r
\r
interface IBEP20 {\r
function totalSupply() external view returns (uint256);\r
function balanceOf(address account) external view returns (uint256);\r
function transfer(address recipient, uint256 amount) external returns (bool);\r
function allowance(address owner, address spender) external view returns (uint256);\r
function approve(address spender, uint256 amount) external returns (bool);\r
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\r
event Transfer(address indexed from, address indexed to, uint256 value);\r
event Approval(address indexed owner, address indexed spender, uint256 value);\r
}\r
\r
contract USDXevonCompanyToken is IBEP20 {\r
string public name = "USD Xevon Company Token";\r
string public symbol = "USDX";\r
uint8 public decimals = 18;\r
uint256 public override totalSupply = 100_000_000_000 * 10**uint256(decimals); \r
address public owner;\r
mapping(address => uint256) public override balanceOf;\r
mapping(address => mapping(address => uint256)) public override allowance;\r
string public website = "https://xevon.space";\r
string public telegram = "@ahmad_sharifi_peace";\r
string public description = "This token is created for the Xevon company, which provides internal transfers for its companies and employees. The tokens will later be exchanged for various resources within the company.";\r
\r
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r
\r
constructor() {\r
owner = msg.sender;\r
balanceOf[msg.sender] = totalSupply;\r
emit Transfer(address(0), msg.sender, totalSupply);\r
}\r
\r
modifier onlyOwner() {\r
require(msg.sender == owner, "Only owner can call this function");\r
_;\r
}\r
\r
function transferOwnership(address newOwner) public onlyOwner {\r
require(newOwner != address(0), "New owner is the zero address");\r
_transferOwnership(newOwner);\r
}\r
\r
function renounceOwnership() public onlyOwner {\r
_transferOwnership(address(0));\r
}\r
\r
function _transferOwnership(address newOwner) internal {\r
address oldOwner = owner;\r
owner = newOwner;\r
emit OwnershipTransferred(oldOwner, newOwner);\r
}\r
\r
function transfer(address _to, uint256 _value) public override returns (bool success) {\r
require(_to != address(0), "Transfer to the zero address");\r
require(balanceOf[msg.sender] >= _value, "Insufficient balance");\r
balanceOf[msg.sender] -= _value;\r
balanceOf[_to] += _value;\r
emit Transfer(msg.sender, _to, _value);\r
return true;\r
}\r
\r
function approve(address _spender, uint256 _value) public override returns (bool success) {\r
require(_spender != address(0), "Approve to the zero address");\r
allowance[msg.sender][_spender] = _value;\r
emit Approval(msg.sender, _spender, _value);\r
return true;\r
}\r
\r
function transferFrom(address _from, address _to, uint256 _value) public override returns (bool success) {\r
require(_to != address(0), "Transfer to the zero address");\r
require(balanceOf[_from] >= _value, "Insufficient balance");\r
require(allowance[_from][msg.sender] >= _value, "Allowance exceeded");\r
balanceOf[_from] -= _value;\r
balanceOf[_to] += _value;\r
allowance[_from][msg.sender] -= _value;\r
emit Transfer(_from, _to, _value);\r
return true;\r
}\r
\r
function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {\r
require(spender != address(0), "Increase allowance to zero address");\r
allowance[msg.sender][spender] += addedValue;\r
emit Approval(msg.sender, spender, allowance[msg.sender][spender]);\r
return true;\r
}\r
\r
function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {\r
require(spender != address(0), "Decrease allowance to zero address");\r
require(allowance[msg.sender][spender] >= subtractedValue, "Decreased allowance below zero");\r
allowance[msg.sender][spender] -= subtractedValue;\r
emit Approval(msg.sender, spender, allowance[msg.sender][spender]);\r
return true;\r
}\r
\r
string public logoURL;\r
function setLogoURL(string memory _url) public onlyOwner {\r
logoURL = _url;\r
}\r
}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}
}}
Submitted on: 2025-10-30 14:07:49
Comments
Log in to comment.
No comments yet.