UNPKG

airgap-coin-lib

Version:

The airgap-coin-lib is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.

40 lines 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var SCALEDecoder_1 = require("../scale/SCALEDecoder"); var MetadataV11_1 = require("./v11/MetadataV11"); var MetadataV12_1 = require("./v12/MetadataV12"); var MAGIC_NUMBER = '6174656d'; // `meta` in hex var Metadata = /** @class */ (function () { function Metadata(versioned) { this.versioned = versioned; } Metadata.decode = function (network, raw) { var decoder = new SCALEDecoder_1.SCALEDecoder(network, raw); var magicNumber = decoder.decodeNextInt(32); // 32 bits this.assertMagicNumber(magicNumber.decoded.toNumber()); var version = decoder.decodeNextInt(8); // 8 bits var versioned; switch (version.decoded.toNumber()) { case 12: versioned = MetadataV12_1.MetadataV12.decode(network, raw); break; case 11: versioned = MetadataV11_1.MetadataV11.decode(network, raw); break; default: throw new Error("Error while parsing metadata, metadata version " + version + " is not supported"); } return new Metadata(versioned); }; Metadata.assertMagicNumber = function (magicNumber) { if (magicNumber !== parseInt(MAGIC_NUMBER, 16)) { throw new Error('Error while parsing metadata, invalid magic number'); } }; Metadata.prototype.decorate = function () { return this.versioned.decorate(); }; return Metadata; }()); exports.Metadata = Metadata; //# sourceMappingURL=Metadata.js.map