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":[]}