首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >完全随机函数中的SafeMint [Chainlink]

完全随机函数中的SafeMint [Chainlink]
EN

Ethereum用户
提问于 2022-04-12 05:11:30
回答 1查看 80关注 0票数 0

不起作用

代码语言:javascript
复制
function mint() public payable {
        require(
            LINK.balanceOf(address(this)) >= fee,
            "Not enough LINK - fill contract with faucet"
        );
        requestRandomness(keyHash, fee);
 }
 function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
      _safeMint(msg.sender, randomness);

 }

但它有用为什么?

代码语言:javascript
复制
function mint() public payable {
        require(
            LINK.balanceOf(address(this)) >= fee,
            "Not enough LINK - fill contract with faucet"
        );
        requestRandomness(keyHash, fee);
        requestToSender[requestId] = msg.sender;
    }
 function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
      _safeMint(requestToSender[requestId], randomness);
 }
EN

回答 1

Ethereum用户

发布于 2022-04-12 14:22:36

我对你所说的“不起作用”作了一些假设。

根据代码,您要在fulfillRandomness()函数中创建的地址有很大的不同。

在第一个示例中,您使用msg.sender来创建薄荷。这在fulfillRandomness函数中;此地址的值很可能是vrfCoordinator的地址。这将导致协调程序“拥有”您刚刚创建的NFT。

在第二个示例中,您将请求随机性的地址映射到请求ID. requestToSender[requestId] = msg.sender;,然后在fulfillRandomness()函数中再次使用该映射。requestToSender[requestId]。这将将请求者的地址传递到fulfillRandomness()函数,从而导致原始请求者‘拥有’NFT。

如果是其他的问题,请告诉我。

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

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

复制
相关文章

相似问题

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