UNPKG

bluzelle-binary-codec

Version:
53 lines (46 loc) 2.38 kB
'use strict'; /* eslint-disable func-style */ var types = require('./types');var _require = require('./hash-prefixes'),HashPrefix = _require.HashPrefix;var _require2 = require('./serdes/binary-parser'),BinaryParser = _require2.BinaryParser;var _require3 = require('./serdes/binary-serializer'),BinarySerializer = _require3.BinarySerializer,BytesList = _require3.BytesList;var _require4 = require('./utils/bytes-utils'),bytesToHex = _require4.bytesToHex,slice = _require4.slice,parseBytes = _require4.parseBytes;var _require5 = require('./hashes'),sha512Half = _require5.sha512Half,transactionID = _require5.transactionID; var makeParser = function makeParser(bytes) {return new BinaryParser(bytes);}; var readJSON = function readJSON(parser) {return parser.readType(types.STObject).toJSON();}; var binaryToJSON = function binaryToJSON(bytes) {return readJSON(makeParser(bytes));}; function serializeObject(object) {var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var prefix = opts.prefix,suffix = opts.suffix,_opts$signingFieldsOn = opts.signingFieldsOnly,signingFieldsOnly = _opts$signingFieldsOn === undefined ? false : _opts$signingFieldsOn; var bytesList = new BytesList(); if (prefix) { bytesList.put(prefix); } var filter = signingFieldsOnly ? function (f) {return f.isSigningField;} : undefined; types.STObject.from(object).toBytesSink(bytesList, filter); if (suffix) { bytesList.put(suffix); } return bytesList.toBytes(); } function signingData(tx) {var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : HashPrefix.transactionSig; return serializeObject(tx, { prefix: prefix, signingFieldsOnly: true }); } function multiSigningData(tx, signingAccount) { var prefix = HashPrefix.transactionMultiSig; var suffix = types.AccountID.from(signingAccount).toBytes(); return serializeObject(tx, { prefix: prefix, suffix: suffix, signingFieldsOnly: true }); } module.exports = { BinaryParser: BinaryParser, BinarySerializer: BinarySerializer, BytesList: BytesList, makeParser: makeParser, serializeObject: serializeObject, readJSON: readJSON, bytesToHex: bytesToHex, parseBytes: parseBytes, multiSigningData: multiSigningData, signingData: signingData, binaryToJSON: binaryToJSON, sha512Half: sha512Half, transactionID: transactionID, slice: slice };