UNPKG

@waku/rln

Version:

RLN (Rate Limiting Nullifier) implementation for Waku

212 lines (209 loc) 8.09 kB
import { MaxLengthError } from '../../../../node_modules/protons-runtime/dist/src/index.js'; import { message } from '../../../../node_modules/protons-runtime/dist/src/codecs/message.js'; import { encodeMessage } from '../../../../node_modules/protons-runtime/dist/src/encode.js'; import { decodeMessage } from '../../../../node_modules/protons-runtime/dist/src/decode.js'; /* eslint-disable import/export */ /* eslint-disable complexity */ /* eslint-disable @typescript-eslint/no-namespace */ /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */ /* eslint-disable @typescript-eslint/no-empty-interface */ /* eslint-disable import/consistent-type-specifier-style */ /* eslint-disable @typescript-eslint/no-unused-vars */ var PeerInfo; (function (PeerInfo) { let _codec; PeerInfo.codec = () => { if (_codec == null) { _codec = message((obj, w, opts = {}) => { if (opts.lengthDelimited !== false) { w.fork(); } if (obj.enr != null) { w.uint32(10); w.bytes(obj.enr); } if (opts.lengthDelimited !== false) { w.ldelim(); } }, (reader, length, opts = {}) => { const obj = {}; const end = length == null ? reader.len : reader.pos + length; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { obj.enr = reader.bytes(); break; } default: { reader.skipType(tag & 7); break; } } } return obj; }); } return _codec; }; PeerInfo.encode = (obj) => { return encodeMessage(obj, PeerInfo.codec()); }; PeerInfo.decode = (buf, opts) => { return decodeMessage(buf, PeerInfo.codec(), opts); }; })(PeerInfo || (PeerInfo = {})); var PeerExchangeQuery; (function (PeerExchangeQuery) { let _codec; PeerExchangeQuery.codec = () => { if (_codec == null) { _codec = message((obj, w, opts = {}) => { if (opts.lengthDelimited !== false) { w.fork(); } if (obj.numPeers != null) { w.uint32(8); w.uint64(obj.numPeers); } if (opts.lengthDelimited !== false) { w.ldelim(); } }, (reader, length, opts = {}) => { const obj = {}; const end = length == null ? reader.len : reader.pos + length; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { obj.numPeers = reader.uint64(); break; } default: { reader.skipType(tag & 7); break; } } } return obj; }); } return _codec; }; PeerExchangeQuery.encode = (obj) => { return encodeMessage(obj, PeerExchangeQuery.codec()); }; PeerExchangeQuery.decode = (buf, opts) => { return decodeMessage(buf, PeerExchangeQuery.codec(), opts); }; })(PeerExchangeQuery || (PeerExchangeQuery = {})); var PeerExchangeResponse; (function (PeerExchangeResponse) { let _codec; PeerExchangeResponse.codec = () => { if (_codec == null) { _codec = message((obj, w, opts = {}) => { if (opts.lengthDelimited !== false) { w.fork(); } if (obj.peerInfos != null) { for (const value of obj.peerInfos) { w.uint32(10); PeerInfo.codec().encode(value, w); } } if (opts.lengthDelimited !== false) { w.ldelim(); } }, (reader, length, opts = {}) => { const obj = { peerInfos: [] }; const end = length == null ? reader.len : reader.pos + length; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (opts.limits?.peerInfos != null && obj.peerInfos.length === opts.limits.peerInfos) { throw new MaxLengthError('Decode error - map field "peerInfos" had too many elements'); } obj.peerInfos.push(PeerInfo.codec().decode(reader, reader.uint32(), { limits: opts.limits?.peerInfos$ })); break; } default: { reader.skipType(tag & 7); break; } } } return obj; }); } return _codec; }; PeerExchangeResponse.encode = (obj) => { return encodeMessage(obj, PeerExchangeResponse.codec()); }; PeerExchangeResponse.decode = (buf, opts) => { return decodeMessage(buf, PeerExchangeResponse.codec(), opts); }; })(PeerExchangeResponse || (PeerExchangeResponse = {})); var PeerExchangeRPC; (function (PeerExchangeRPC) { let _codec; PeerExchangeRPC.codec = () => { if (_codec == null) { _codec = message((obj, w, opts = {}) => { if (opts.lengthDelimited !== false) { w.fork(); } if (obj.query != null) { w.uint32(10); PeerExchangeQuery.codec().encode(obj.query, w); } if (obj.response != null) { w.uint32(18); PeerExchangeResponse.codec().encode(obj.response, w); } if (opts.lengthDelimited !== false) { w.ldelim(); } }, (reader, length, opts = {}) => { const obj = {}; const end = length == null ? reader.len : reader.pos + length; while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { obj.query = PeerExchangeQuery.codec().decode(reader, reader.uint32(), { limits: opts.limits?.query }); break; } case 2: { obj.response = PeerExchangeResponse.codec().decode(reader, reader.uint32(), { limits: opts.limits?.response }); break; } default: { reader.skipType(tag & 7); break; } } } return obj; }); } return _codec; }; PeerExchangeRPC.encode = (obj) => { return encodeMessage(obj, PeerExchangeRPC.codec()); }; PeerExchangeRPC.decode = (buf, opts) => { return decodeMessage(buf, PeerExchangeRPC.codec(), opts); }; })(PeerExchangeRPC || (PeerExchangeRPC = {})); export { PeerExchangeQuery, PeerExchangeRPC, PeerExchangeResponse, PeerInfo };