Transaction Hash:
Block:
7247871 at Feb-21-2019 07:07:27 AM +UTC
Transaction Fee:
0.00054027 ETH
$1.14
Gas Used:
54,027 Gas / 10 Gwei
Emitted Events:
| 115 |
VCCT.Transfer( from=[Sender] 0x628e3c5095f4f385b3ba82673ba1212ef85d245c, to=0x882d1693bcfCe5bb6fe4e8e88bbb9577aC580502, value=20000000000000000000 )
|
Account State Difference:
| Address | Before | After | State Difference | ||
|---|---|---|---|---|---|
| 0x521A0d49...5325aA637 | |||||
|
0x52bc44d5...b7d7bE3b5
Miner
| (Nanopool) | 9,110.762679387257726085 Eth | 9,110.763219657257726085 Eth | 0.00054027 | |
| 0x628e3c50...Ef85d245C |
1.546920162510738306 Eth
Nonce: 78
|
1.546379892510738306 Eth
Nonce: 79
| 0.00054027 |
Execution Trace
VCCT.transfer( _to=0x882d1693bcfCe5bb6fe4e8e88bbb9577aC580502, _value=20000000000000000000 )
transfer[VCCT (ln:63)]
_transfer[VCCT (ln:64)]Transfer[VCCT (ln:82)]
pragma solidity ^0.4.16;
contract VCCT {
//通证名称
string public name = "VCCT";
//通证符号
string public symbol = "VCCT";
//小数位数
uint8 public decimals = 18;
//通证总量
uint256 public totalSupply;
bool public lockAll = false;
event Transfer(address indexed from, address indexed to, uint256 value);
event FrozenFunds(address target, bool frozen);
event OwnerUpdate(address _prevOwner, address _newOwner);
address public owner;
//0x0无效地址
address internal newOwner = 0x0;
mapping(address => bool) public frozens;
mapping(address => uint256) public balanceOf;
constructor() public {
totalSupply = 10000000000 * 10 ** uint256(decimals);
balanceOf[msg.sender] = totalSupply;
owner = msg.sender;
}
//权限校验
modifier onlyOwner {
require(msg.sender == owner);
_;
}
//权限转移
function transferOwnership(address tOwner) onlyOwner public {
require(owner != tOwner);
newOwner = tOwner;
}
function acceptOwnership() public {
require(msg.sender == newOwner && newOwner != 0x0);
owner = newOwner;
newOwner = 0x0;
emit OwnerUpdate(owner, newOwner);
}
//设置帐户冻结状态
function freezeAccount(address target, bool freeze) onlyOwner public {
frozens[target] = freeze;
emit FrozenFunds(target, freeze);
}
function freezeAll(bool lock) onlyOwner public {
lockAll = lock;
}
function contTransfer(address _to, uint256 weis) onlyOwner public {
_transfer(this, _to, weis);
}
function transfer(address _to, uint256 _value) public {
_transfer(msg.sender, _to, _value);
}
function _transfer(address _from, address _to, uint _value) internal {
//校验锁定状态
require(!lockAll);
//收款地址是否有效
require(_to != 0x0);
//付款地址余额是否有效
require(balanceOf[_from] >= _value);
//收款是否有数据溢出
require(balanceOf[_to] + _value >= balanceOf[_to]);
//付款地址是否冻结
require(!frozens[_from]);
uint previousBalances = balanceOf[_from] + balanceOf[_to];
balanceOf[_from] -= _value;
balanceOf[_to] += _value;
emit Transfer(_from, _to, _value);
assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
}
}