首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开放玉米素在混炼中的进口

开放玉米素在混炼中的进口
EN

Ethereum用户
提问于 2022-04-25 11:27:31
回答 2查看 665关注 0票数 0

我从openzeplin进口erc20,但它不起作用!

这是代码

代码语言:javascript
复制
    // SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";

contract lock is ERC20{
    
}

这是错误

代码语言:javascript
复制
    TypeError: Contract "lock" should be marked as abstract.
--> learning/lock.sol:6:1:
|
6 | contract lock is ERC20{
| ^ (Relevant source part starts here and spans across multiple lines).
Note: Missing implementation:
--> https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol:54:5:
|
54 | constructor(string memory name_, string memory symbol_) {
| ^ (Relevant source part starts here and spans across multiple lines).
EN

回答 2

Ethereum用户

发布于 2022-04-25 11:39:25

正如在open的文档中所描述的,您应该实现构造函数,否则您的契约需要标记为抽象,因为您的错误也指定了这一点。

代码语言:javascript
复制
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract lock is ERC20 {
constructor()...
}
票数 0
EN

Ethereum用户

发布于 2022-04-25 14:57:51

我想用它锁定合同,我不需要名字,供应。当我从构造函数中删除参数时,它会给出相同的错误。

我假设您希望在智能契约中锁定特定的令牌。要解决此问题,可以使用ERC20智能契约(如状态变量)和访问erc20智能契约方法。您可以看到这个例子:

代码语言:javascript
复制
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";

contract lock {
    ERC20 _token;

    constructor(address _tokenAddress) { 
        _token = ERC20(_tokenAddress);
    }

    // Get name about ERC20 token
    function getName() external view returns(string memory) {
        return _token.name();
    }
}
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/126846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档