0

我已经为我的 ERC721 NFT 智能合约实现了版税功能。当我部署我的合同时,版税合同等于我的地址,所以这样我就定义了版税被转移到哪个地址。

其次,我将我的百分比设置为 3。铸币成本是 2.50 eth,所以每当人们出售他们的 NFT 时,我应该得到 %3 百分比,等于 0,075 eth,但我没有。我可以看到,当我在 Remix 中使用 tokenID 调用版税信息函数时,接收者是所有者的地址,在 wei 中的值为 0,075 eth。

然后我将我的合约部署到 rinkeby,用另一个地址铸造一些代币,然后将它们卖到 OpenSea 上的另一个地址,但是合约所有者的余额没有增加,合约的余额也没有增加。

有我的代码。顺便说一句,我收到了该警告,但我不明白如何将 _tokenId 放在那里,每当我尝试这样做时都会出错。

在此处输入图像描述

    uint256 public royaltyPerc = 3;
    uint256 public cost = 2.50 ether;
    address payable public royaltyContract;
    bytes4 private constant _INTERFACE_ID_ERC2981 = 0x2a55205a;
    
    
    constructor (
        string memory _name,
        string memory _symbol,
        string memory _initBaseURI
        ) ERC721(_name, _symbol) {
            
            royaltyContract = payable(msg.sender);
            setBaseURI(_initBaseURI);
            mint(msg.sender, 1);
            
        }
        
        // public
        function mint(address _to, uint256 _mintAmount) public payable {
            uint256 supply = totalSupply();
            require(!paused);
            require(_mintAmount > 0);
            require(_mintAmount <= maxMintAmount);
            require(supply + _mintAmount <= maxSupply);
            
            for (uint256 i = 1; i <= _mintAmount; i++) {
                _safeMint(_to, supply + i);
            }
            
        }
        
        function setRoyaltyPercent ( uint256 _perc ) public onlyOwner {
            royaltyPerc = _perc;
        }

        function royaltyInfo( uint256 _tokenId, uint256 _salePrice ) public  view returns ( address receiver, uint256 royaltyAmount ) {
            receiver = royaltyContract;
            royaltyAmount = _salePrice * royaltyPerc / 100;
        }

我还尝试找到另一个示例来尝试查看我错在哪里,但是我不知道这些“收件人”和“价值”值来自哪里,因为我们没有分配它们。

在此处输入图像描述

4

0 回答 0