636a2b93c0a9f019f4582be613dcce0593e009860adffc2ba7a63d2dc53c5532.json raw
1 {"ast":null,"code":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getSignedProof = exports.getSignedOutputs = exports.getSignedOutput = exports.getSignedProofs = exports.signBlindedMessage = exports.signP2PKsecret = exports.createP2PKsecret = void 0;\nconst utils_1 = require(\"@noble/curves/abstract/utils\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst secp256k1_1 = require(\"@noble/curves/secp256k1\");\nconst utils_2 = require(\"@noble/hashes/utils\");\nconst NUT11_js_1 = require(\"../common/NUT11.js\");\nconst createP2PKsecret = pubkey => {\n const newSecret = ['P2PK', {\n nonce: (0, utils_1.bytesToHex)((0, utils_2.randomBytes)(32)),\n data: pubkey\n }];\n const parsed = JSON.stringify(newSecret);\n return new TextEncoder().encode(parsed);\n};\nexports.createP2PKsecret = createP2PKsecret;\nconst signP2PKsecret = (secret, privateKey) => {\n const msghash = (0, sha256_1.sha256)(new TextDecoder().decode(secret));\n const sig = secp256k1_1.schnorr.sign(msghash, privateKey);\n return sig;\n};\nexports.signP2PKsecret = signP2PKsecret;\nconst signBlindedMessage = (B_, privateKey) => {\n const msgHash = (0, sha256_1.sha256)(B_);\n const sig = secp256k1_1.schnorr.sign(msgHash, privateKey);\n return sig;\n};\nexports.signBlindedMessage = signBlindedMessage;\nconst getSignedProofs = (proofs, privateKey) => {\n return proofs.map(p => {\n try {\n const parsed = (0, NUT11_js_1.parseSecret)(p.secret);\n if (parsed[0] !== 'P2PK') {\n throw new Error('unknown secret type');\n }\n return (0, exports.getSignedProof)(p, (0, utils_1.hexToBytes)(privateKey));\n } catch (error) {\n return p;\n }\n });\n};\nexports.getSignedProofs = getSignedProofs;\nconst getSignedOutput = (output, privateKey) => {\n const B_ = output.B_.toHex(true);\n const signature = (0, exports.signBlindedMessage)(B_, privateKey);\n output.witness = {\n signatures: [(0, utils_1.bytesToHex)(signature)]\n };\n return output;\n};\nexports.getSignedOutput = getSignedOutput;\nconst getSignedOutputs = (outputs, privateKey) => {\n return outputs.map(o => (0, exports.getSignedOutput)(o, privateKey));\n};\nexports.getSignedOutputs = getSignedOutputs;\nconst getSignedProof = (proof, privateKey) => {\n if (!proof.witness) {\n proof.witness = {\n signatures: [(0, utils_1.bytesToHex)((0, exports.signP2PKsecret)(proof.secret, privateKey))]\n };\n }\n return proof;\n};\nexports.getSignedProof = getSignedProof;\n//# sourceMappingURL=NUT11.js.map","map":null,"metadata":{},"sourceType":"script","externalDependencies":[]}