UNPKG

@protokol/notarization-crypto

Version:

Transaction Builders For Notarization Transaction Types

66 lines 2.72 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NotarizationTransaction = void 0; const crypto_1 = require("@arkecosystem/crypto"); const utils_1 = require("@protokol/utils"); const bytebuffer_1 = __importDefault(require("bytebuffer")); const defaults_1 = require("../defaults"); const enums_1 = require("../enums"); const notarization_schemas_1 = require("./utils/notarization-schemas"); const { schemas } = crypto_1.Transactions; class NotarizationTransaction extends crypto_1.Transactions.Transaction { static getSchema() { return schemas.extend(schemas.transactionBaseSchema, { $id: this.key, required: ["asset", "typeGroup"], properties: { type: { transactionType: this.type }, typeGroup: { const: this.typeGroup }, amount: notarization_schemas_1.amountSchema, vendorField: notarization_schemas_1.vendorFieldSchema, asset: { type: "object", required: ["notarization"], properties: { notarization: notarization_schemas_1.notarizationSchema, }, }, }, }); } serialize() { var _a; const { data } = this; utils_1.Asserts.assert.defined((_a = data.asset) === null || _a === void 0 ? void 0 : _a.notarization); const notarizationAsset = data.asset.notarization; const hashBuffer = Buffer.from(notarizationAsset.hash); const buffer = new bytebuffer_1.default(1 + hashBuffer.length, true); // hash buffer.writeByte(hashBuffer.length); buffer.append(hashBuffer, "hex"); return buffer; } deserialize(buf) { const { data } = this; //hash const hashLength = buf.readUint8(); const hash = buf.readString(hashLength); const notarization = { hash }; data.asset = { notarization, }; } hasVendorField() { return true; } } exports.NotarizationTransaction = NotarizationTransaction; NotarizationTransaction.typeGroup = enums_1.NotarizationTransactionGroup; NotarizationTransaction.type = enums_1.NotarizationTransactionTypes.Notarization; NotarizationTransaction.key = "Notarization"; NotarizationTransaction.version = defaults_1.defaults.version; NotarizationTransaction.defaultStaticFee = crypto_1.Utils.BigNumber.make(enums_1.NotarizationStaticFees.Notarization); //# sourceMappingURL=notarization.js.map