Transaction Hash:
Block:
22727014 at Jun-17-2025 09:50:35 PM +UTC
Transaction Fee:
0.00004745258557186 ETH
$0.18
Gas Used:
51,404 Gas / 0.923130215 Gwei
Emitted Events:
383 |
NVA.Transfer( from=[Receiver] 0x4cad9b983d0bf75cf43f58be3b0196851313cefe, to=0x836d416742f15e816c4bF98E63663e32C814b47D, value=5000000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x1764890F...b3a50e3d7 |
0.036051073249613448 Eth
Nonce: 548
|
0.036003620664041588 Eth
Nonce: 549
| 0.00004745258557186 | ||
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 10.109343228860228441 Eth | 10.109343237893967401 Eth | 0.00000000903373896 | |
0x4b20D07d...1b0e89cC5 | |||||
0x4cad9B98...51313cEFE |
Execution Trace
0x4cad9b983d0bf75cf43f58be3b0196851313cefe.f7448a31( )
-
NVA.transfer( recipient=0x836d416742f15e816c4bF98E63663e32C814b47D, amount=5000000000000000000000 ) => ( True )
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); } contract ERC20 is IERC20 { string private _name; string private _symbol; uint8 private _decimals; uint256 private _totalSupply; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; constructor(string memory name_, string memory symbol_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } 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) { _approve(msg.sender, spender, amount); return true; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][msg.sender]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, msg.sender, currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[msg.sender][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(msg.sender, spender, currentAllowance - subtractedValue); } return true; } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract NVA is ERC20 { address private _owner; bool private _locked = false; event DepositEther(address indexed fromAddress, uint256 valueEth); event WithdrawEther(address indexed fromAddress, uint256 valueEth); constructor() ERC20("NVA", "NVA", 18) { uint256 initTotalSupply = uint256(10000000000)*(uint256(10)**18); _mint(msg.sender, initTotalSupply); _owner = msg.sender; } function owner() public view returns (address) { return _owner; } function getBalanceEther() public view returns (uint256) { return address(this).balance; } function depositEther() public payable { emit DepositEther(msg.sender, msg.value); } function withdrawEther(address payable recipient, uint256 amount) public { require(!_locked, "Reentrant call detected!"); _locked = true; require(msg.sender == _owner); require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); emit WithdrawEther(recipient, amount); _locked = false; } fallback() external payable { emit DepositEther(msg.sender, msg.value); } receive() external payable { emit DepositEther(msg.sender, msg.value); } }