🚀. Socket Launch Week Day 3:Socket Firewall Now Blocks Malicious VS Code and Open VSX Extensions.Learn more
Sign In

@leap-network/uniform-random-number

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@leap-network/uniform-random-number

PoolManager Lossless Pool Smart Contracts

latest
Source
npmnpm
Version
0.1.2
Version published
Maintainers
1
Created
Source

Uniform Random Number

CircleCI

This Solidity library eliminates modulo bias when using a large number to select from a limited range of numbers.

For example:

  • Assume the max unsigned integer is 5
  • random() selects an integer between 0 and 5

We want to use the random number to select a value between 0 and 3.

selection = random() % 4

The above might do, until we realize that:

random()selection
00
11
22
33
40
51

Notice that 0 and 1 are overrepresented. This is modulo bias, and is problematic when making fair selection algorithms.

This library mitigates modulo bias using an algorithm described in this article.

Installation

Add to your package.json:

{
  "dependencies": {
    "@leap-network/uniform-random-number": "pooltogether/uniform-random-number#master"
  }
}

Usage

import "pooltogether/uniform-random-number/contracts/UniformRandomNumber.sol";

// ...

uint256 randomNumber = uint256(keccak('Hello'));
uint256 upperLimit = 10;
UniformRandomNumber.uniform(randomNumber, upperLimit);

Audit

This code has been audited by OpenZeppelin and Quantstamp as part of the PoolTogether codebase.

FAQs

Package last updated on 07 Aug 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts