添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
contract Coin is ERC20{ constructor() ERC20("TestCoin", "TEC") { //初始发行1000个币去到作者的户口内,并且是6个小数点 _mint(msg.sender, 1000 * 10 ** decimals()); function decimals()public pure override returns(uint8){ return 6;

2. 发行代币了之后就需要把代币的地址copy下来,然后部署以下的代币合约。
参考文档: https://learnblockchain.cn/docs/eips/eip-20.html#api-%E8%A7%84%E8%8C%83

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract CoinContract{
    IERC20 MyToken;
    constructor(address TokenAddress){
        MyToken = IERC20(TokenAddress);
    function transferCoinToContract(uint amount)public{
        //必须调用token当中的approve先,授权给本合约总共允许挪动多少资金,否则直接调用transferFrom的话肯定会报错的。
        //委任第三方转账的话,必须使用transferFrom
        //以下是把自己的户口当中资金打入合约内
        MyToken.transferFrom(msg.sender,address(this),amount);
    function checkBalance(address _addr)public view returns(uint){
        //查看本合约内有多少的代币
        return MyToken.balanceOf(_addr);
    function checkRemainingApproveBalance() public view returns(uint){
        //查看本身的户口,允许第三方挪动的自己还剩下多少
        return MyToken.allowance(msg.sender,address(this));

注意:让合约帮你转账去到本合约内,还是帮你转账给其他地址都必须授权给本合约先,否则合约无权帮你调动资金。换言之也就是你必须调用approve然后才能调用transferFrom

【approve】
– 调用代币中的approve就是,授权某合约能够帮你挪动多少资金。
这function无法在代币合约中调用,因为安全需要,所以必须调用回代币当中的approve function。
approve( 合约地址,挪动的资金额 )