5 关于"ERC20代币部署、转账及代码验证"这节课

目前有三个疑问: 1\ 在ropsten测试网部署了一个代币合约,然后在代币浏览器中无法看到代币总量等信息 image.png


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 { } 
为什么要有一个空的构造函数
请先 登录 后评论

最佳答案 2021-06-04 14:53

以太币是 coin 其他的币 这是 ERC20 , 由智能合约代码管理。

请先 登录 后评论

其它 3 个回答

helloWorld
请先 登录 后评论
helloWorld
请先 登录 后评论
helloWorld
请先 登录 后评论
  • 2 关注
  • 0 收藏,4887 浏览
  • helloWorld 提出于 2021-06-03 14:25