发布于 2022-02-25 13:00:52
我看到你并不是专门谈论EIP-2981,但是有一种方法可以是实现EIP2981,并在传输时调用它,而不是仅仅调用造币的部分。
下面是一个示例,我假设付款是用eth完成的,如果您需要使用erc-20接收付款,只需更改逻辑:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/token/ERC721/extension/ERC721Royalty.sol";
contract MyToken is ERC721, ERC721Royalty {
constructor() ERC721("MyToken", "MTK") {}
function transferFrom(
address from,
address to,
uint256 tokenId
) public payable virtual override {
(address artist, uint256 value) = royaltyInfo(_tokenId, msg.value);
payable(artist).transfer(value);
///LOGIC...
}
}这样,每一次二次销售,也就是从前一位买家转到下一位买家,都会给艺术家带来一些钱。
至于Nifty如何做到这一点,它是未知的,因为他们的代码不是开源的。
发布于 2023-01-24 14:17:00
关于如何实现这一点,基本上有两个选项:
https://ethereum.stackexchange.com/questions/94647
复制相似问题