CleanToken
0xc659475db8751c57701c2868c0547a38c6a3a38c
Verification
Verified
v0.8.20+commit.a1b79de6
Type
Contract
1,950 bytes
ABI entries
13
7 read · 3 write
License
mit
Contract information
- Address
- 0xc659475db8751c57701c2868c0547a38c6a3a38c
- Chain
- Robinhood Chain (4663)
- Compiler
- v0.8.20+commit.a1b79de6
- Optimization
- Enabled
- Creator
- 0x3cdc322e94…4ef7991496
- Creation tx
- 0x6f4f14488d…ceb535d4da
Token
- Name
- Meta
- Symbol
- META
- Decimals
- 18
- Holders
- 217
- Market
- View token page →
Read contract (7)
BUILD_ID() → bytes32
allowance(address, address) → uint256
balanceOf(address) → uint256
decimals() → uint8
name() → string
symbol() → string
totalSupply() → uint256
Events (2)
ApprovalTransfer
ABI
[
{
"inputs": [
{
"internalType": "string",
"name": "navn_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
},
{
"internalType": "uint256",
"name": "tilbud_",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "BUILD_ID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]Source code
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
contract CleanToken is IERC20, IERC20Metadata {
bytes32 public constant BUILD_ID = 0x59e6ff9ae15a8067a5af08f2884dcbb5b4e45209d89cc070232f10353a8abf7d;
string private _navn;
string private _symbol;
uint256 private _totalTilbud;
mapping(address => uint256) private _saldoer;
mapping(address => mapping(address => uint256)) private _tillatelser;
constructor(string memory navn_, string memory symbol_, uint256 tilbud_) {
_navn = navn_;
_symbol = symbol_;
uint256 belop = tilbud_ * 10 ** 18;
_totalTilbud = belop;
_saldoer[msg.sender] = belop;
emit Transfer(address(0), msg.sender, belop);
}
function name() external view returns (string memory) { return _navn; }
function symbol() external view returns (string memory) { return _symbol; }
function decimals() external pure returns (uint8) { return 18; }
function totalSupply() external view returns (uint256) { return _totalTilbud; }
function balanceOf(address account) external view returns (uint256) { return _saldoer[account]; }
function allowance(address owner, address spender) external view returns (uint256) {
return _tillatelser[owner][spender];
}
function transfer(address to, uint256 value) external returns (bool) {
_overfor(msg.sender, to, value);
return true;
}
function approve(address spender, uint256 value) external returns (bool) {
_godkjenn(msg.sender, spender, value);
return true;
}
function transferFrom(address from, address to, uint256 value) external returns (bool) {
uint256 naavaerende = _tillatelser[from][msg.sender];
if (naavaerende != type(uint256).max) {
require(naavaerende >= value, "ERC20: utilstrekkelig tillatelse");
unchecked { _godkjenn(from, msg.sender, naavaerende - value); }
}
_overfor(from, to, value);
return true;
}
function _overfor(address from, address to, uint256 value) private {
require(from != address(0), "ERC20: overfor fra null");
require(to != address(0), "ERC20: overfor til null");
uint256 fraSaldo = _saldoer[from];
require(fraSaldo >= value, "ERC20: utilstrekkelig saldo");
unchecked {
_saldoer[from] = fraSaldo - value;
_saldoer[to] += value;
}
emit Transfer(from, to, value);
}
function _godkjenn(address owner, address spender, uint256 value) private {
require(owner != address(0), "ERC20: godkjenn fra null");
require(spender != address(0), "ERC20: godkjenn til null");
_tillatelser[owner][spender] = value;
emit Approval(owner, spender, value);
}
}
Chain explorer1896msChain node78ms