UNPKG

@radixdlt/tx-parser

Version:
62 lines 2.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.REAddress = void 0; const _types_1 = require("./_types"); const neverthrow_1 = require("neverthrow"); const crypto_1 = require("@radixdlt/crypto"); /* eslint-disable no-case-declarations */ const fromBufferReader = (bufferReader) => bufferReader .readNextBuffer(1) .map(b => ({ reAddressTypeBuf: b, reAddressType: b.readUInt8(0), })) .andThen((aa) => { const { reAddressTypeBuf, reAddressType } = aa; switch (reAddressType) { case _types_1.REAddressType.SYSTEM: const systemAddress = { reAddressType, toBuffer: () => reAddressTypeBuf, toString: () => `REAddressType.SYSTEM (Always empty)`, }; return (0, neverthrow_1.ok)(systemAddress); case _types_1.REAddressType.RADIX_NATIVE_TOKEN: const nativeToken = { reAddressType, toBuffer: () => reAddressTypeBuf, toString: () => `REAddressType.RADIX_NATIVE_TOKEN (Always empty)`, }; return (0, neverthrow_1.ok)(nativeToken); case _types_1.REAddressType.HASHED_KEY_NONCE: return bufferReader.readNextBuffer(26).map((lower26Bytes) => ({ reAddressType, lower26Bytes, toBuffer: () => Buffer.concat([ reAddressTypeBuf, lower26Bytes, ]), toString: () => `REAddressType.HASHED_KEY_NONCE: { lower26Bytes: ${lower26Bytes.toString('hex')} }`, })); case _types_1.REAddressType.PUBLIC_KEY: return bufferReader .readNextBuffer(33) .andThen(pubKeyBytes => crypto_1.PublicKey.fromBuffer(pubKeyBytes)) .map((publicKey) => ({ reAddressType, publicKey, toBuffer: () => Buffer.concat([ reAddressTypeBuf, publicKey.asData({ compressed: true, }), ]), toString: () => `REAddressType.PUBLIC_KEY: { publicKey: ${publicKey.toString(true)} }`, })); } }); /* eslint-enable no-case-declarations */ exports.REAddress = { fromBufferReader, }; //# sourceMappingURL=reAddress.js.map