8c02f336dc92946e968e53902e7205d68c856258b6c45b5dbc1285737c19b166.json raw

   1  {"ast":null,"code":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.serializeBlindedMessage = exports.deserializeProof = exports.serializeProof = exports.constructProofFromPromise = exports.unblindSignature = exports.blindMessage = exports.createRandomBlindedMessage = void 0;\nconst secp256k1_1 = require(\"@noble/curves/secp256k1\");\nconst utils_1 = require(\"@noble/hashes/utils\");\nconst utils_js_1 = require(\"../util/utils.js\");\nconst index_js_1 = require(\"../common/index.js\");\nconst NUT11_js_1 = require(\"./NUT11.js\");\nfunction createRandomBlindedMessage(privateKey) {\n  return blindMessage((0, utils_1.randomBytes)(32), (0, utils_js_1.bytesToNumber)(secp256k1_1.secp256k1.utils.randomPrivateKey()), privateKey);\n}\nexports.createRandomBlindedMessage = createRandomBlindedMessage;\nfunction blindMessage(secret, r, privateKey) {\n  const Y = (0, index_js_1.hashToCurve)(secret);\n  if (!r) {\n    r = (0, utils_js_1.bytesToNumber)(secp256k1_1.secp256k1.utils.randomPrivateKey());\n  }\n  const rG = secp256k1_1.secp256k1.ProjectivePoint.BASE.multiply(r);\n  const B_ = Y.add(rG);\n  if (privateKey !== undefined) {\n    return (0, NUT11_js_1.getSignedOutput)({\n      B_,\n      r,\n      secret\n    }, privateKey);\n  }\n  return {\n    B_,\n    r,\n    secret\n  };\n}\nexports.blindMessage = blindMessage;\nfunction unblindSignature(C_, r, A) {\n  const C = C_.subtract(A.multiply(r));\n  return C;\n}\nexports.unblindSignature = unblindSignature;\nfunction constructProofFromPromise(promise, r, secret, key) {\n  const A = key;\n  const C = unblindSignature(promise.C_, r, A);\n  const proof = {\n    id: promise.id,\n    amount: promise.amount,\n    secret,\n    C\n  };\n  return proof;\n}\nexports.constructProofFromPromise = constructProofFromPromise;\nconst serializeProof = proof => {\n  return {\n    amount: proof.amount,\n    C: proof.C.toHex(true),\n    id: proof.id,\n    secret: new TextDecoder().decode(proof.secret),\n    witness: JSON.stringify(proof.witness)\n  };\n};\nexports.serializeProof = serializeProof;\nconst deserializeProof = proof => {\n  return {\n    amount: proof.amount,\n    C: (0, index_js_1.pointFromHex)(proof.C),\n    id: proof.id,\n    secret: new TextEncoder().encode(proof.secret),\n    witness: proof.witness ? JSON.parse(proof.witness) : undefined\n  };\n};\nexports.deserializeProof = deserializeProof;\nconst serializeBlindedMessage = (bm, amount) => {\n  return {\n    B_: bm.B_.toHex(true),\n    amount: amount\n  };\n};\nexports.serializeBlindedMessage = serializeBlindedMessage;\n//# sourceMappingURL=index.js.map","map":null,"metadata":{},"sourceType":"script","externalDependencies":[]}