fixed-bytes.js 956 B

12345678910111213141516171819202122232425262728
  1. import { defineProperties, getBytesCopy, hexlify } from "../../utils/index.js";
  2. import { Typed } from "../typed.js";
  3. import { Coder } from "./abstract-coder.js";
  4. /**
  5. * @_ignore
  6. */
  7. export class FixedBytesCoder extends Coder {
  8. size;
  9. constructor(size, localName) {
  10. let name = "bytes" + String(size);
  11. super(name, name, localName, false);
  12. defineProperties(this, { size }, { size: "number" });
  13. }
  14. defaultValue() {
  15. return ("0x0000000000000000000000000000000000000000000000000000000000000000").substring(0, 2 + this.size * 2);
  16. }
  17. encode(writer, _value) {
  18. let data = getBytesCopy(Typed.dereference(_value, this.type));
  19. if (data.length !== this.size) {
  20. this._throwError("incorrect data length", _value);
  21. }
  22. return writer.writeBytes(data);
  23. }
  24. decode(reader) {
  25. return hexlify(reader.readBytes(this.size));
  26. }
  27. }
  28. //# sourceMappingURL=fixed-bytes.js.map