address.js 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.AddressCoder = void 0;
  4. const index_js_1 = require("../../address/index.js");
  5. const maths_js_1 = require("../../utils/maths.js");
  6. const typed_js_1 = require("../typed.js");
  7. const abstract_coder_js_1 = require("./abstract-coder.js");
  8. /**
  9. * @_ignore
  10. */
  11. class AddressCoder extends abstract_coder_js_1.Coder {
  12. constructor(localName) {
  13. super("address", "address", localName, false);
  14. }
  15. defaultValue() {
  16. return "0x0000000000000000000000000000000000000000";
  17. }
  18. encode(writer, _value) {
  19. let value = typed_js_1.Typed.dereference(_value, "string");
  20. try {
  21. value = (0, index_js_1.getAddress)(value);
  22. }
  23. catch (error) {
  24. return this._throwError(error.message, _value);
  25. }
  26. return writer.writeValue(value);
  27. }
  28. decode(reader) {
  29. return (0, index_js_1.getAddress)((0, maths_js_1.toBeHex)(reader.readValue(), 20));
  30. }
  31. }
  32. exports.AddressCoder = AddressCoder;
  33. //# sourceMappingURL=address.js.map