首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在合同中使用多个Counters.counter?

如何在合同中使用多个Counters.counter?
EN

Ethereum用户
提问于 2022-02-17 14:39:21
回答 1查看 393关注 0票数 1
代码语言:javascript
复制
pragma solidity >=0.7.0 <0.9.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract MyContract is ERC721, Ownable {
    using Strings for uint256;
    using Counters for Counters.Counter;

    Counters.Counter private totalSupply;
    Counters.Counter private commonSupply;
    Counters.Counter private rareSupply;
    ....
EN

回答 1

Ethereum用户

发布于 2022-12-01 14:58:25

无论你喜欢什么:)

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

import "@openzeppelin/contracts/utils/Counters.sol";

contract EnumerableMap {
    using Counters for Counters.Counter;

    Counters.Counter public totalSupply;
    Counters.Counter public commonSupply;
    Counters.Counter public rareSupply;
    
    enum Counts {
        totalSupply,
        commonSupply,
        rareSupply
    }

    function increment(Counts _count) external {
        if(_count == Counts.totalSupply) {
            totalSupply.increment();
        } else if (_count == Counts.commonSupply) {
            commonSupply.increment();
        } else {
            rareSupply.increment();
        }
    }
}
票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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