UNPKG

@airgap/serializer

Version:

The @airgap/serializer provides serializers used in AirGap applications.

72 lines 3.38 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.IACMessageWrapper = void 0; var bs58check = __importStar(require("@airgap/coinlib-core/dependencies/src/bs58check-2.1.2/index")); var index_1 = require("@airgap/coinlib-core/dependencies/src/cbor-sync-1.0.4/index"); var pako_2_0_3_1 = require("@airgap/coinlib-core/dependencies/src/pako-2.0.3"); var message_1 = require("./message"); var payload_1 = require("./payload"); var serializer_1 = require("./serializer"); var SERIALIZER_VERSION = 3; var IACMessageWrapper = /** @class */ (function () { function IACMessageWrapper(data) { this.version = SERIALIZER_VERSION; this.payload = data; } IACMessageWrapper.prototype.decoded = function () { return [this.version, this.payload]; }; IACMessageWrapper.prototype.encoded = function (serializer) { if (serializer === void 0) { serializer = serializer_1.SerializerV3.getInstance(); } var arr = [this.version, this.payload.asArray(serializer)]; var buffer = (0, index_1.encode)(arr); console.log(buffer.toString('hex')); var deflated = (0, pako_2_0_3_1.gzip)(buffer); return bs58check.encode(Buffer.from(deflated)); }; IACMessageWrapper.fromDecoded = function (data) { var payload = payload_1.Payload.fromDecoded(data); return new IACMessageWrapper(payload); }; IACMessageWrapper.fromEncoded = function (data, serializer) { if (serializer === void 0) { serializer = serializer_1.SerializerV3.getInstance(); } var buffer = bs58check.decode(data); var inflated = (0, pako_2_0_3_1.ungzip)(buffer); var decoded = (0, index_1.decode)(Buffer.from(inflated)); if (parseInt(decoded[0].toString(), 10) !== SERIALIZER_VERSION) { throw new Error('Unsupported version'); } if (decoded[1].some(function (el) { return !(0, message_1.isMessageDefinitionArray)(el); })) { throw new Error('Decoded message has wrong format'); } var payload = decoded[1]; var finalPayload = payload_1.Payload.fromEncoded(payload, serializer); return new IACMessageWrapper(finalPayload); }; return IACMessageWrapper; }()); exports.IACMessageWrapper = IACMessageWrapper; //# sourceMappingURL=iac-message-wrapper.js.map