address.js 838 B

1234567891011121314151617181920212223242526272829
  1. import { getAddress } from "../../address/index.js";
  2. import { toBeHex } from "../../utils/maths.js";
  3. import { Typed } from "../typed.js";
  4. import { Coder } from "./abstract-coder.js";
  5. /**
  6. * @_ignore
  7. */
  8. export class AddressCoder extends Coder {
  9. constructor(localName) {
  10. super("address", "address", localName, false);
  11. }
  12. defaultValue() {
  13. return "0x0000000000000000000000000000000000000000";
  14. }
  15. encode(writer, _value) {
  16. let value = Typed.dereference(_value, "string");
  17. try {
  18. value = getAddress(value);
  19. }
  20. catch (error) {
  21. return this._throwError(error.message, _value);
  22. }
  23. return writer.writeValue(value);
  24. }
  25. decode(reader) {
  26. return getAddress(toBeHex(reader.readValue(), 20));
  27. }
  28. }
  29. //# sourceMappingURL=address.js.map