Neler yeni
Türkiye’nin Lider Kripto Para Forumu

SatoshiTURK Ailesine Hoş Geldiniz!

Türkiye’nin en güvenilir kripto ve blockchain topluluğunu ziyaret ettiğiniz için mutluyuz. SatoshiTURK olarak, her seviyeden kripto meraklısı ve blockchain uzmanına bilgi paylaşımı, öğrenme ve kazanç fırsatları sunuyoruz. Amacımız, güncel ve bağımsız bilgiye kolayca ulaşmanızı sağlamak ve özgün içeriklerle kendinizi geliştirmenize olanak tanımaktır. Burada, kripto para dünyasının en yeni gelişmelerini takip edebilir, güncel analizlere ve rehberlere göz atabilir, blockchain teknolojisinin sunduğu fırsatları daha yakından keşfedebilirsiniz.

Topluluğumuza katılarak sadece bilgi edinmekle kalmaz, aynı zamanda katkılarınızın karşılığını BNB Coin ile alabilirsiniz. Forumumuzda, açtığınız her başlık, sorduğunuz her soru ve sağladığınız her faydalı bilgi, size SatoshiTURK kredi sistemi üzerinden BNB Coin kazandırır. Bu sayede, öğrenirken kazanma deneyimini yaşayacak ve topluluğumuza aktif bir şekilde katkıda bulunarak değerli bir üye olacaksınız.

Deneyimlerinizi, fikirlerinizi ve analizlerinizi paylaşarak hem kendinizi geliştirebilir hem de bu katkılarınızın ödüllerini kazanabilirsiniz. Kripto dünyasında güvenle ilerlemek, yeni insanlarla tanışmak ve sektör hakkında daha fazla bilgi edinmek için SatoshiTURK ailesine katılın. Hadi, birlikte öğrenelim, keşfedelim ve Türkiye'nin en güçlü kripto topluluğunda güvenle yol alalım!

Bu kod bir token çıkarmak için uygunmudur ?

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IBEP20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract BuyOnlyToken is IBEP20 {
string public name = "BuyOnlyToken";
string public symbol = "BOT";
uint8 public decimals = 18;
uint256 private _totalSupply;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _buyPrice;

constructor(uint256 initialSupply, uint256 buyPrice) {
_totalSupply = initialSupply * 10 ** uint256(decimals);
_balances[msg.sender] = _totalSupply;
_buyPrice = buyPrice;
emit Transfer(address(0), msg.sender, _totalSupply);
}

function totalSupply() external view override returns (uint256) {
return _totalSupply;
}

function balanceOf(address account) external view override returns (uint256) {
return _balances[account];
}

function transfer(address recipient, uint256 amount) external override returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}

function allowance(address owner, address spender) external view override returns (uint256) {
return _allowances[owner][spender];
}

function approve(address spender, uint256 amount) external override returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}

function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
return true;
}

function _transfer(address sender, address recipient, uint256 amount) private {
require(sender != address(0), "Transfer from the zero address");
require(recipient != address(0), "Transfer to the zero address");
require(_balances[sender] >= amount, "Insufficient balance");
_balances[sender] -= amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
}

function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "Approve from the zero address");
require(spender != address(0), "Approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}

function buyTokens() external payable {
uint256 amount = msg.value / _buyPrice;
require(amount > 0, "Insufficient amount sent");
_transfer(address(this), msg.sender, amount);
}

receive() external payable {
buyTokens();
}
}
 
Bu kontratın kullanılması sağlıklı değil. güvenlik açığı var.
 
transfer, transferfrom ve buytokens işlevlerinde koruma yok openzeplin kontratlarını import ederek ReentrancyGuard işlevini ekleyebilirsiniz.
_approve işleminde bir sınırlama yok doğal olarak saldırıya açık.
 

Forum istatistikleri

Konular
13.635
Mesajlar
65.683
Kullanıcılar
6.884
Son üye
BlackHatSec
Geri
Üst