UNPKG

know-js

Version:

JavaScript library for sending Know transactions from the client or server

64 lines (50 loc) 1.6 kB
/** @module attach info */ var crypto = require("./crypto.js"), constants = require("../constants.js"), slots = require("../time/slots.js"); /** * @static * @param {string} kdsphash * @param {ECPair|string} secret * @param {ECPair|string} [secondSecret] * @param {number} [feeOverride] */ function createHashRegistration(kdsphash, secret, secondSecret, feeOverride) { if (!ipfshash || !secret) return false; if (feeOverride && !Number.isInteger(feeOverride)) { throw new Error('Not a valid fee') } var transaction = { type: 11, amount: 0, fee: feeOverride || constants.fees.attachinfo, timestamp: slots.getTime(), asset: {} }; transaction.vendorFieldHex = new Buffer(kdsphash, "utf8").toString("hex"); //filling with 0x00 while (transaction.vendorFieldHex.length < 128) { transaction.vendorFieldHex = "00" + transaction.vendorFieldHex; } var keys = secret; if (!crypto.isECPair(secret)) { keys = crypto.getKeys(secret); } if (!keys.publicKey) { throw new Error("Invalid public key"); } transaction.senderPublicKey = keys.publicKey; crypto.sign(transaction, keys); if (secondSecret) { var secondKeys = secondSecret; if (!crypto.isECPair(secondSecret)) { secondKeys = crypto.getKeys(secondSecret); } crypto.secondSign(transaction, secondKeys); } transaction.id = crypto.getId(transaction); return transaction; } module.exports = { createHashRegistration: createHashRegistration }