CustomToken
0x2ba854c26908142dd0564907d1f76803472cb682
Verification
Verified
v0.8.20+commit.a1b79de6
Type
Contract
7,082 bytes
ABI entries
57
22 read · 23 write
License
mit
Contract information
- Address
- 0x2ba854c26908142dd0564907d1f76803472cb682
- Chain
- Robinhood Chain (4663)
- Compiler
- v0.8.20+commit.a1b79de6
- Optimization
- Enabled
- Creator
- 0xB8820152C3…c87377956C
- Creation tx
- 0x81477a2bc3…4ac191726b
Token
- Name
- PONSHIB
- Symbol
- PONSHIB
- Decimals
- 18
- Holders
- 1
- Market
- View token page →
Read contract (22)
BUILD_ID() → bytes32
allowance(address, address) → uint256
antiBotBlokker() → uint256
balanceOf(address) → uint256
decimals() → uint8
erPar(address) → bool
handelAktivert() → bool
hentInfo() → string, string, uint256, uint256, address, bool, uint256, uint256, uint256, uint256, uint256
hviteliste(address) → bool
maksLommebokBelop() → uint256
maksTilbud() → uint256
maksTxBelop() → uint256
name() → string
owner() → address
pendingOwner() → address
salgPauset() → bool
sisteTxTid(address) → uint256
startBlokk() → uint256
svarteliste(address) → bool
symbol() → string
totalSupply() → uint256
ventetidSekunder() → uint256
Events (10)
ApprovalBrentEierskapOverforingStartetEierskapOverfortHandelAktivertHvitelisteOppdatertParOppdatertPregetSvartelisteOppdatertTransfer
ABI
[
{
"inputs": [
{
"internalType": "string",
"name": "name_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
},
{
"internalType": "uint256",
"name": "startTilbud_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maksTilbud_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maksTxProsent_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maksLommebokProsent_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "antiBotBlokker_",
"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": "fra",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "belop",
"type": "uint256"
}
],
"name": "Brent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "forrige",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "neste",
"type": "address"
}
],
"name": "EierskapOverforingStartet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "forrige",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "neste",
"type": "address"
}
],
"name": "EierskapOverfort",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "vedBlokk",
"type": "uint256"
}
],
"name": "HandelAktivert",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "adresse",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"name": "HvitelisteOppdatert",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "par",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"name": "ParOppdatert",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "til",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "belop",
"type": "uint256"
}
],
"name": "Preget",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "adresse",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"name": "SvartelisteOppdatert",
"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": [],
"name": "acceptOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "aktiverHandel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "eier_",
"type": "address"
},
{
"internalType": "address",
"name": "fullmektig",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "antiBotBlokker",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"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": [
{
"internalType": "uint256",
"name": "belop",
"type": "uint256"
}
],
"name": "brenn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "fra",
"type": "address"
},
{
"internalType": "uint256",
"name": "belop",
"type": "uint256"
}
],
"name": "brennFra",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "deaktiverHandel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "erPar",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "gjenopprettEth",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenAdresse",
"type": "address"
},
{
"internalType": "uint256",
"name": "belop",
"type": "uint256"
}
],
"name": "gjenopprettToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "handelAktivert",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "hentInfo",
"outputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "_totalSupply",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_maxSupply",
"type": "uint256"
},
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "bool",
"name": "_trading",
"type": "bool"
},
{
"internalType": "uint256",
"name": "_launchBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_antiBotBlocks",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_cooldown",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_maxTx",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_maxWallet",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "hviteliste",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maksLommebokBelop",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maksTilbud",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maksTxBelop",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pendingOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "til",
"type": "address"
},
{
"internalType": "uint256",
"name": "belop",
"type": "uint256"
}
],
"name": "preg",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "salgPauset",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "blokker_",
"type": "uint256"
}
],
"name": "settAntiBotBlokker",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "adresse",
"type": "address"
},
{
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"name": "settHviteliste",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "adresser",
"type": "address[]"
},
{
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"name": "settHvitelisteMasse",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "belop_",
"type": "uint256"
}
],
"name": "settMaksLommebok",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "belop_",
"type": "uint256"
}
],
"name": "settMaksTx",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "par_",
"type": "address"
},
{
"internalType": "bool",
"name": "status_",
"type": "bool"
}
],
"name": "settPar",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "adresse",
"type": "address"
},
{
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"name": "settSvarteliste",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "adresser",
"type": "address[]"
},
{
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"name": "settSvartelisteMasse",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "sekunder_",
"type": "uint256"
}
],
"name": "settVentetid",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "sisteTxTid",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"name": "sperrSalg",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "startBlokk",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "svarteliste",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"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": "amount",
"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": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "nyEier",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "ventetidSekunder",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
]Source code
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract CustomToken {
bytes32 public constant BUILD_ID = 0x4383aaaae666b92ed241e3cb715182abb8eff9854776737d4c81cca9668eb453;
string public name;
string public symbol;
uint8 public constant decimals = 18;
uint256 public totalSupply;
uint256 public maksTilbud;
mapping(address => uint256) private _saldo;
mapping(address => mapping(address => uint256)) private _tillatelser;
address public owner;
address public pendingOwner;
mapping(address => bool) public erPar;
mapping(address => bool) public svarteliste;
mapping(address => bool) public hviteliste;
mapping(address => uint256) public sisteTxTid;
bool public handelAktivert;
bool public salgPauset;
uint256 public startBlokk;
uint256 public antiBotBlokker = 3;
uint256 public ventetidSekunder = 0;
uint256 public maksTxBelop;
uint256 public maksLommebokBelop;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event EierskapOverforingStartet(address indexed forrige, address indexed neste);
event EierskapOverfort(address indexed forrige, address indexed neste);
event HandelAktivert(uint256 vedBlokk);
event SvartelisteOppdatert(address indexed adresse, bool status);
event HvitelisteOppdatert(address indexed adresse, bool status);
event ParOppdatert(address indexed par, bool status);
event Preget(address indexed til, uint256 belop);
event Brent(address indexed fra, uint256 belop);
modifier kunEier() {
require(msg.sender == owner, "ikke eieren");
_;
}
constructor(
string memory name_,
string memory symbol_,
uint256 startTilbud_,
uint256 maksTilbud_,
uint256 maksTxProsent_,
uint256 maksLommebokProsent_,
uint256 antiBotBlokker_
) {
name = name_;
symbol = symbol_;
owner = msg.sender;
antiBotBlokker = antiBotBlokker_;
hviteliste[msg.sender] = true;
hviteliste[address(this)] = true;
_fyllHviteliste();
// Uniswap V4 PoolManager (Robinhood) — token gaar HIT ved salg => merk som "par"
erPar[0x8366a39CC670B4001A1121B8F6A443A643e40951] = true;
uint256 startWei = startTilbud_ * 10 ** 18;
maksTilbud = maksTilbud_ > 0 ? maksTilbud_ * 10 ** 18 : type(uint256).max;
require(maksTilbud >= startWei, "maksTilbud < startTilbud");
_preg(msg.sender, startWei);
maksTxBelop = maksTxProsent_ > 0 ? startWei * maksTxProsent_ / 10000 : type(uint256).max;
maksLommebokBelop = maksLommebokProsent_ > 0 ? startWei * maksLommebokProsent_ / 10000 : type(uint256).max;
}
function balanceOf(address account) public view returns (uint256) {
return _saldo[account];
}
function allowance(address eier_, address fullmektig) public view returns (uint256) {
return _tillatelser[eier_][fullmektig];
}
function transfer(address to, uint256 amount) public returns (bool) {
_overfor(msg.sender, to, amount);
return true;
}
function approve(address spender, uint256 amount) public returns (bool) {
_tillatelser[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transferFrom(address from, address to, uint256 amount) public returns (bool) {
uint256 tillatt = _tillatelser[from][msg.sender];
if (tillatt != type(uint256).max) {
require(tillatt >= amount, "utilstrekkelig tillatelse");
_tillatelser[from][msg.sender] = tillatt - amount;
}
_overfor(from, to, amount);
return true;
}
function _overfor(address avsender, address mottaker, uint256 belop) internal {
require(avsender != address(0) && mottaker != address(0), "nulladresse");
require(_saldo[avsender] >= belop, "utilstrekkelig saldo");
require(!svarteliste[avsender], "avsender svartelistet");
require(!svarteliste[mottaker], "mottaker svartelistet");
bool erKjop = erPar[avsender];
bool erSalg = erPar[mottaker];
bool erFritatt = hviteliste[avsender] || hviteliste[mottaker];
if (erSalg && salgPauset) {
require(hviteliste[avsender], "pauset");
}
if (!erFritatt) {
require(handelAktivert, "handel deaktivert");
if (erKjop && startBlokk > 0 && block.number <= startBlokk + antiBotBlokker) {
svarteliste[mottaker] = true;
emit SvartelisteOppdatert(mottaker, true);
}
if (ventetidSekunder > 0) {
require(block.timestamp >= sisteTxTid[avsender] + ventetidSekunder, "ventetid aktiv");
sisteTxTid[avsender] = block.timestamp;
}
if (maksTxBelop < type(uint256).max) {
require(belop <= maksTxBelop, "overskrider maksTx");
}
if (!erSalg && maksLommebokBelop < type(uint256).max) {
require(_saldo[mottaker] + belop <= maksLommebokBelop, "overskrider maksLommebok");
}
}
_saldo[avsender] -= belop;
_saldo[mottaker] += belop;
emit Transfer(avsender, mottaker, belop);
}
function _preg(address til, uint256 belop) internal {
require(totalSupply + belop <= maksTilbud, "overskrider maksTilbud");
totalSupply += belop;
_saldo[til] += belop;
emit Transfer(address(0), til, belop);
}
function _fyllHviteliste() private {
}
function aktiverHandel() external kunEier {
require(!handelAktivert, "allerede aktivert");
handelAktivert = true;
startBlokk = block.number;
emit HandelAktivert(block.number);
}
function deaktiverHandel() external kunEier {
handelAktivert = false;
}
function sperrSalg(bool status) external kunEier {
salgPauset = status;
}
function settPar(address par_, bool status_) external kunEier {
require(par_ != address(0), "nulladresse");
erPar[par_] = status_;
hviteliste[par_] = status_;
emit ParOppdatert(par_, status_);
}
function settMaksTx(uint256 belop_) external kunEier {
require(belop_ == 0 || belop_ >= totalSupply / 1000, "minst 0.1%");
maksTxBelop = belop_ == 0 ? type(uint256).max : belop_;
}
function settMaksLommebok(uint256 belop_) external kunEier {
require(belop_ == 0 || belop_ >= totalSupply / 1000, "minst 0.1%");
maksLommebokBelop = belop_ == 0 ? type(uint256).max : belop_;
}
function settAntiBotBlokker(uint256 blokker_) external kunEier {
antiBotBlokker = blokker_;
}
function settVentetid(uint256 sekunder_) external kunEier {
require(sekunder_ <= 300, "maksimalt 300s");
ventetidSekunder = sekunder_;
}
function settSvarteliste(address adresse, bool status) external kunEier {
require(adresse != owner, "eier kan ikke svartelistes");
svarteliste[adresse] = status;
emit SvartelisteOppdatert(adresse, status);
}
function settSvartelisteMasse(address[] calldata adresser, bool status) external kunEier {
for (uint256 i = 0; i < adresser.length; i++) {
if (adresser[i] != owner) {
svarteliste[adresser[i]] = status;
emit SvartelisteOppdatert(adresser[i], status);
}
}
}
function settHviteliste(address adresse, bool status) external kunEier {
hviteliste[adresse] = status;
emit HvitelisteOppdatert(adresse, status);
}
function settHvitelisteMasse(address[] calldata adresser, bool status) external kunEier {
for (uint256 i = 0; i < adresser.length; i++) {
hviteliste[adresser[i]] = status;
emit HvitelisteOppdatert(adresser[i], status);
}
}
function preg(address til, uint256 belop) external kunEier {
_preg(til, belop);
emit Preget(til, belop);
}
function brenn(uint256 belop) external {
require(_saldo[msg.sender] >= belop, "utilstrekkelig saldo");
_saldo[msg.sender] -= belop;
totalSupply -= belop;
emit Transfer(msg.sender, address(0), belop);
emit Brent(msg.sender, belop);
}
function brennFra(address fra, uint256 belop) external kunEier {
require(_saldo[fra] >= belop, "utilstrekkelig saldo");
_saldo[fra] -= belop;
totalSupply -= belop;
emit Transfer(fra, address(0), belop);
emit Brent(fra, belop);
}
function gjenopprettToken(address tokenAdresse, uint256 belop) external kunEier {
require(tokenAdresse != address(this), "egen token kan ikke gjenopprettes");
(bool suksess,) = tokenAdresse.call(
abi.encodeWithSignature("transfer(address,uint256)", owner, belop)
);
require(suksess, "overforing mislyktes");
}
function gjenopprettEth() external kunEier {
payable(owner).transfer(address(this).balance);
}
function transferOwnership(address nyEier) external kunEier {
require(nyEier != address(0), "nulladresse");
pendingOwner = nyEier;
emit EierskapOverforingStartet(owner, nyEier);
}
function acceptOwnership() external {
require(msg.sender == pendingOwner, "ikke ventende eier");
emit EierskapOverfort(owner, pendingOwner);
owner = pendingOwner;
pendingOwner = address(0);
hviteliste[owner] = true;
}
function renounceOwnership() external kunEier {
emit EierskapOverfort(owner, address(0));
pendingOwner = address(0);
owner = address(0);
}
function hentInfo() external view returns (
string memory _name, string memory _symbol,
uint256 _totalSupply, uint256 _maxSupply,
address _owner,
bool _trading, uint256 _launchBlock,
uint256 _antiBotBlocks, uint256 _cooldown,
uint256 _maxTx, uint256 _maxWallet
) {
return (
name, symbol,
totalSupply, maksTilbud,
owner,
handelAktivert, startBlokk,
antiBotBlokker, ventetidSekunder,
maksTxBelop, maksLommebokBelop
);
}
receive() external payable {}
}
Chain explorer1847msChain node91ms