12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import { getBytesCopy, hexlify } from "../../utils/index.js";
- import { Coder } from "./abstract-coder.js";
- import type { Reader, Writer } from "./abstract-coder.js";
- /**
- * @_ignore
- */
- export class DynamicBytesCoder extends Coder {
- constructor(type: string, localName: string) {
- super(type, type, localName, true);
- }
- defaultValue(): string {
- return "0x";
- }
- encode(writer: Writer, value: any): number {
- value = getBytesCopy(value);
- let length = writer.writeValue(value.length);
- length += writer.writeBytes(value);
- return length;
- }
- decode(reader: Reader): any {
- return reader.readBytes(reader.readIndex(), true);
- }
- }
- /**
- * @_ignore
- */
- export class BytesCoder extends DynamicBytesCoder {
- constructor(localName: string) {
- super("bytes", localName);
- }
- decode(reader: Reader): any {
- return hexlify(super.decode(reader));
- }
- }
|