Browse Source

Enforce BIP 67 lexicographically ordered pubkeys for multisig

master
Luke Childs 5 years ago
parent
commit
69882f8293
  1. 12
      src/key-formats/multisig.js

12
src/key-formats/multisig.js

@ -3,13 +3,17 @@ const bitcoin = require('bitcoinjs-lib');
const generateRedeemScript = ({pubkeys, m}) => { const generateRedeemScript = ({pubkeys, m}) => {
const keyPair = bitcoin.ECPair.makeRandom(); const keyPair = bitcoin.ECPair.makeRandom();
const {publicKey} = keyPair; const {publicKey} = keyPair;
// BIP 67 lexicographically ordered pubkeys
pubkeys = [
...pubkeys,
publicKey
].sort(Buffer.comapre);
let redeemScript; let redeemScript;
let n; let n;
({output: redeemScript, m, n, pubkeys} = bitcoin.payments.p2ms({ ({output: redeemScript, m, n, pubkeys} = bitcoin.payments.p2ms({
pubkeys: [ pubkeys,
...pubkeys,
publicKey
],
m m
})); }));

Loading…
Cancel
Save