randomness-js
Version:
A library for consuming, verifying and using randomness from the dcipher network
32 lines (31 loc) • 1.7 kB
TypeScript
import { BigNumberish, BytesLike, Provider, Signer } from "ethers";
export declare const FURNACE_TESTNET_CONTRACT_ADDRESS = "0x8192aF4ce49f473fCa7e3e5a8d819B0763Def048";
export declare const FILECOIN_CALIBNET_CONTRACT_ADDRESS = "0x91c7774C7476F3832919adE7690467DF91bfd919";
export declare const BASE_SEPOLIA_CONTRACT_ADDRESS = "0x455bfe4B1B4393b458d413E2B0778A95F9B84B82";
export declare const POLYGON_POS_CONTRACT_ADDRESS = "0x455bfe4B1B4393b458d413E2B0778A95F9B84B82";
export declare function createBlsDst(chainId: bigint): string;
export type RandomnessVerificationParameters = {
requestID: bigint;
nonce: bigint;
randomness: BytesLike;
signature: BytesLike;
};
export type RandomnessVerificationConfig = {
shouldBlowUp: boolean;
};
export declare class Randomness {
private readonly rpc;
private readonly contractAddress;
private readonly chainId;
private readonly defaultRequestTimeoutMs;
private readonly contract;
private readonly pk;
constructor(rpc: Signer | Provider, contractAddress: string | undefined, chainId: bigint, defaultRequestTimeoutMs?: number);
static createFilecoinCalibnet(rpc: Signer | Provider): Randomness;
static createFurnace(rpc: Signer | Provider): Randomness;
static createBaseSepolia(rpc: Signer | Provider): Randomness;
static createPolygonPos(rpc: Signer | Provider): Randomness;
static createFromChainId(rpc: Signer | Provider, chainId: BigNumberish): Randomness;
requestRandomness(confirmations?: number, timeoutMs?: number): Promise<RandomnessVerificationParameters>;
verify(parameters: RandomnessVerificationParameters, config?: RandomnessVerificationConfig): Promise<boolean>;
}