目前有三个疑问: 1\ 在ropsten测试网部署了一个代币合约,然后在代币浏览器中无法看到代币总量等信息
2\ 不明白的一点,代币的增减不是以入栈出栈的方式进行增加减少吗?如果以下代码执行的话也是可以的,并且是可以无限转代币并且不扣转移地址的代币数量
function transfer(address _to, uint256 _value) public returns (bool success){
require(_to != address(0));
require(balances[msg.sender] >= _value);
require(balances[_to] + _value >= _value);
// balances[msg.sender] -= _value;
balances[_to] += _value;
emit Transfer(msg.sender, _to, _value);
return true;
}
那么实际上,真正的币其实就只有以太坊一个,当以太坊进行转账的时候是需要payable的,那么其他所有的Token在以太网络中仅仅只是一个符号而已,能否这么理解.所以如果代币上的增减需要一致,那就需要人为的逻辑干预了?
3\ 补充一个问题,这是我在看其他的代币合约的一个疑问
contract Context {
constructor () internal { }
// solhint-disable-previous-line no-empty-blocks
function _msgSender() internal view returns (address payable) {
return msg.sender;
}
}
不太理解上段Context函数的作用是什么,他最终是和ERC20接口一起继承代币函数中.
constructor () internal { }
为什么要有一个空的构造函数