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