首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在结构内分配数组?

如何在结构内分配数组?
EN

Ethereum用户
提问于 2021-08-11 16:07:35
回答 1查看 139关注 0票数 1

我试图将数组分配给结构item.creators.push(_creators[i]);,但没有分配数组。我没有收到来自编译的任何错误,但是在"Item“中创建的唯一属性是id。我能做什么?

代码语言:javascript
复制
 contract BitshoppTokens is Context, ERC1155Burnable, ERC1155Pausable, AccessControlEnumerable {

    using SafeMath for uint256;
    using Counters for Counters.Counter;
  Counters.Counter private _tokenIds;
    
    struct Item {
        uint256 id;
        LibPart.Part[] creators;
        LibPart.Part[] royalties;
    }
    
    mapping(uint256 => Item) public Items;

    mapping(uint256 => uint256) private _totalSupply;

    function mintERC1155(address to, uint256 amount, LibPart.Part[] memory _creators, LibPart.Part[] memory _royalties, bytes memory data) public payable returns(uint256) {
        uint256 tokenId = incrementAndGet();
        _mint(to, tokenId, amount, data);
        
        uint256 total = 0;
        Item storage item = Items[tokenId];

        item.id = tokenId;
        

        for (uint256 i = 0; i < _creators.length; ++i){
            require(_creators[i].account != address(0x0), "Account should be present");
            require(_creators[i].value != 0, "Creator share should be positive");
            item.creators.push(_creators[i]);
            total = total.add(_creators[i].value);
        }
        require(total == 10000, "total amount of creators share should be 10000");

        for (uint256 i = 0; i < _royalties.length; ++i){
            item.royalties.push(_royalties[i]);
        }
        
        return tokenId;
    }
}

对于上下文,LibPart有以下结构:

代码语言:javascript
复制
struct Part {
        address payable account;
        uint96 value;
    }
EN

回答 1

Ethereum用户

发布于 2021-08-12 13:43:09

您的输入数据可能有问题。

实际上,如果_creators.length等于0,那么只有Id才会被填充。例如,您可以找到如何做这里

另一种检查方法是添加一行require(_creators.length > 0)

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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