12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.quality = void 0;
- var types_1 = require("./types");
- var decimal_js_1 = require("decimal.js");
- var bigInt = require("big-integer");
- var buffer_1 = require("buffer/");
- /**
- * class for encoding and decoding quality
- */
- var quality = /** @class */ (function () {
- function quality() {
- }
- /**
- * Encode quality amount
- *
- * @param arg string representation of an amount
- * @returns Serialized quality
- */
- quality.encode = function (quality) {
- var decimal = new decimal_js_1.Decimal(quality);
- var exponent = decimal.e - 15;
- var qualityString = decimal.times("1e".concat(-exponent)).abs().toString();
- var bytes = types_1.coreTypes.UInt64.from(bigInt(qualityString)).toBytes();
- bytes[0] = exponent + 100;
- return bytes;
- };
- /**
- * Decode quality amount
- *
- * @param arg hex-string denoting serialized quality
- * @returns deserialized quality
- */
- quality.decode = function (quality) {
- var bytes = buffer_1.Buffer.from(quality, 'hex').slice(-8);
- var exponent = bytes[0] - 100;
- var mantissa = new decimal_js_1.Decimal("0x".concat(bytes.slice(1).toString('hex')));
- return mantissa.times("1e".concat(exponent));
- };
- return quality;
- }());
- exports.quality = quality;
- //# sourceMappingURL=quality.js.map
|