@waku/rln
Version:
RLN (Rate Limiting Nullifier) implementation for Waku
33 lines (30 loc) • 1.02 kB
JavaScript
import { PRICE_CALCULATOR_ABI } from './abi/price_calculator.js';
import { RLN_ABI } from './abi/rln.js';
const RLN_CONTRACT = {
chainId: 59141,
address: "0xb9cd878c90e49f797b4431fbf4fb333108cb90e6",
abi: RLN_ABI
};
const PRICE_CALCULATOR_CONTRACT = {
chainId: 59141,
address: "0xBcfC0660Df69f53ab409F32bb18A3fb625fcE644",
abi: PRICE_CALCULATOR_ABI
};
/**
* Rate limit tiers (messages per epoch)
* Each membership can specify a rate limit within these bounds.
* @see https://github.com/waku-org/specs/blob/master/standards/core/rln-contract.md#implementation-suggestions
*/
const RATE_LIMIT_TIERS = {
STANDARD: 300,
MAX: 600
};
// Global rate limit parameters
const RATE_LIMIT_PARAMS = {
MIN_RATE: RATE_LIMIT_TIERS.STANDARD,
MAX_RATE: RATE_LIMIT_TIERS.MAX,
MAX_TOTAL_RATE: 160_000,
EPOCH_LENGTH: 600
};
const DEFAULT_RATE_LIMIT = RATE_LIMIT_PARAMS.MAX_RATE;
export { DEFAULT_RATE_LIMIT, PRICE_CALCULATOR_CONTRACT, RATE_LIMIT_PARAMS, RATE_LIMIT_TIERS, RLN_CONTRACT };