首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘'Error:在尝试使用Chainlink时,在uint256中的依赖于参数的查找之后找不到或看不到成员"mod“

‘'Error:在尝试使用Chainlink时,在uint256中的依赖于参数的查找之后找不到或看不到成员"mod“
EN

Ethereum用户
提问于 2022-01-04 11:22:12
回答 2查看 664关注 0票数 1

我在试图编译时遇到这个错误

代码语言:javascript
复制
    function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
        randomResult = randomness.mod(20).add(1);
    }

我在本教程上看到的。

EN

回答 2

Ethereum用户

发布于 2022-01-04 11:22:12

使用mod操作符。

代码语言:javascript
复制
uint256 public randomResult;

function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
    randomResult = (randomness % 50) + 1;
}

在文档中阅读

票数 1
EN

Ethereum用户

发布于 2022-01-04 23:13:18

.add()/.sub()/.mul()/.div()函数来自实现检查算法的库。两种流行的是OpenZeppelin的SafeMath和dapphub的ds-数学

例如,下面是如何使用SafeMath

代码语言:javascript
复制
import {SafeMath} from "@openzeppelin/contracts/utils/math/SafeMath.sol";

contract C {
    using SafeMath for uint256;

    uint256 public randomResult;

    function fulfillRandomness(bytes32 requestId, uint256 randomness) internal {
        randomResult = randomness.mod(20).add(1);
    }
}

但是,请注意,如果您使用的是编译器的最新版本--从0.8.0开始使用所有仿真器操作符自动检查是否溢出。,那么您实际上并不需要使用这样的库,这样您就可以直接使用操作符而不会丢失任何检查:

代码语言:javascript
复制
randomResult = randomness % 50 + 1;
票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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