Description:
Smart contract deployed on Ethereum with Factory features.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
/**
* @title KETH
* @dev A decentralized, immutable ERC-20 token with fixed supply (100 billion tokens).
* - All tokens minted to deployer at construction.
* - NO owner, NO mint, NO pause, NO upgrade — fully immutable after deploy.
* - Users can voluntarily burn tokens to reduce total supply.
* - Long-term stability and trust through simplicity.
*/
contract KETH {
// ———————— Metadata ————————
string public constant name = "KETH";
string public constant symbol = "KCASH";
uint8 public constant decimals = 18;
// ———————— State ————————
uint256 public totalSupply;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
// ———————— Events ————————
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event Burn(address indexed from, uint256 value);
// ———————— Constructor ————————
constructor() {
totalSupply = 100_000_000_000 * 10 ** decimals; // 100 billion tokens
balanceOf[msg.sender] = totalSupply;
emit Transfer(address(0), msg.sender, totalSupply);
}
// ———————— ERC-20: Transfers ————————
function transfer(address to, uint256 value) external returns (bool) {
require(to != address(0), "KETH: transfer to zero address");
require(balanceOf[msg.sender] >= value, "KETH: insufficient balance");
balanceOf[msg.sender] -= value;
balanceOf[to] += value;
emit Transfer(msg.sender, to, value);
return true;
}
// ———————— ERC-20: Approvals ————————
function approve(address spender, uint256 value) external returns (bool) {
require(spender != address(0), "KETH: approve to zero address");
allowance[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function transferFrom(address from, address to, uint256 value) external returns (bool) {
require(from != address(0), "KETH: transfer from zero address");
require(to != address(0), "KETH: transfer to zero address");
require(balanceOf[from] >= value, "KETH: insufficient balance");
require(allowance[from][msg.sender] >= value, "KETH: insufficient allowance");
balanceOf[from] -= value;
balanceOf[to] += value;
allowance[from][msg.sender] -= value;
emit Transfer(from, to, value);
return true;
}
// ———————— Safe Approve Helpers ————————
function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
require(spender != address(0), "KETH: increaseAllowance to zero address");
allowance[msg.sender][spender] += addedValue;
emit Approval(msg.sender, spender, allowance[msg.sender][spender]);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
require(spender != address(0), "KETH: decreaseAllowance to zero address");
uint256 currentAllowance = allowance[msg.sender][spender];
if (subtractedValue > currentAllowance) {
allowance[msg.sender][spender] = 0;
} else {
allowance[msg.sender][spender] = currentAllowance - subtractedValue;
}
emit Approval(msg.sender, spender, allowance[msg.sender][spender]);
return true;
}
// ———————— Burn Functions ————————
function burn(uint256 value) external {
require(balanceOf[msg.sender] >= value, "KETH: burn amount exceeds balance");
balanceOf[msg.sender] -= value;
totalSupply -= value;
emit Burn(msg.sender, value);
emit Transfer(msg.sender, address(0), value);
}
function burnFrom(address from, uint256 value) external returns (bool) {
require(balanceOf[from] >= value, "KETH: burn amount exceeds balance");
require(allowance[from][msg.sender] >= value, "KETH: insufficient allowance");
allowance[from][msg.sender] -= value;
balanceOf[from] -= value;
totalSupply -= value;
emit Burn(from, value);
emit Transfer(from, address(0), value);
return true;
}
}
Submitted on: 2025-11-06 14:26:46
Comments
Log in to comment.
No comments yet.