UNPKG

@waku/rln

Version:

RLN (Rate Limiting Nullifier) implementation for Waku

31 lines (28 loc) 834 B
import { hexlify, arrayify } from '../../../bytes/lib.esm/index.js'; import { Coder } from './abstract-coder.js'; class DynamicBytesCoder extends Coder { constructor(type, localName) { super(type, type, localName, true); } defaultValue() { return "0x"; } encode(writer, value) { value = arrayify(value); let length = writer.writeValue(value.length); length += writer.writeBytes(value); return length; } decode(reader) { return reader.readBytes(reader.readValue().toNumber(), true); } } class BytesCoder extends DynamicBytesCoder { constructor(localName) { super("bytes", localName); } decode(reader) { return reader.coerce(this.name, hexlify(super.decode(reader))); } } export { BytesCoder, DynamicBytesCoder };