UNPKG

@waku/rln

Version:

RLN (Rate Limiting Nullifier) implementation for Waku

67 lines (64 loc) 2.91 kB
import { defineReadOnly, resolveProperties, Description } from '../../properties/lib.esm/index.js'; import { Logger } from '../../logger/lib.esm/index.js'; import { version } from './_version.js'; import { BigNumber } from '../../bignumber/lib.esm/bignumber.js'; var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; const logger = new Logger(version); //export type CallTransactionable = { // call(transaction: TransactionRequest): Promise<TransactionResponse>; //}; class ForkEvent extends Description { static isForkEvent(value) { return !!(value && value._isForkEvent); } } /////////////////////////////// // Exported Abstracts class Provider { constructor() { logger.checkAbstract(new.target, Provider); defineReadOnly(this, "_isProvider", true); } getFeeData() { return __awaiter(this, void 0, void 0, function* () { const { block, gasPrice } = yield resolveProperties({ block: this.getBlock("latest"), gasPrice: this.getGasPrice().catch((error) => { // @TODO: Why is this now failing on Calaveras? //console.log(error); return null; }) }); let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null; if (block && block.baseFeePerGas) { // We may want to compute this more accurately in the future, // using the formula "check if the base fee is correct". // See: https://eips.ethereum.org/EIPS/eip-1559 lastBaseFeePerGas = block.baseFeePerGas; maxPriorityFeePerGas = BigNumber.from("1500000000"); maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas); } return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice }; }); } // Alias for "on" addListener(eventName, listener) { return this.on(eventName, listener); } // Alias for "off" removeListener(eventName, listener) { return this.off(eventName, listener); } static isProvider(value) { return !!(value && value._isProvider); } } export { ForkEvent, Provider };