|
@@ 127-146 (lines=20) @@
|
| 124 |
|
}; |
| 125 |
|
} |
| 126 |
|
|
| 127 |
|
function p2pkhMakeScript(wif, network) { |
| 128 |
|
var eckey = bitcoin.ECPair.fromWIF(wif, network); |
| 129 |
|
var hash160 = bitcoin.crypto.hash160(eckey.getPublicKeyBuffer()); |
| 130 |
|
return bitcoin.script.pubKeyHash.output.encode(hash160); |
| 131 |
|
} |
| 132 |
|
|
| 133 |
|
function p2pkhFormFixture(wif, network) { |
| 134 |
|
var keyHash = p2pkhMakeScript(wif, network); |
| 135 |
|
var compressed = bitcoin.ECPair.fromWIF(wif, network).compressed; |
| 136 |
|
var scriptSizes = p2pkhScriptSizes(keyHash, compressed); |
| 137 |
|
return makeFormFixtures(keyHash, scriptSizes, [compressed]); |
| 138 |
|
} |
| 139 |
|
|
| 140 |
|
function p2pkMakeFormFixtures(wif, network) { |
| 141 |
|
var script = p2pkMakeScript(wif, network); |
| 142 |
|
var scriptSizes = p2pkScriptSizes(script); |
| 143 |
|
return makeFormFixtures(script, scriptSizes); |
| 144 |
|
} |
| 145 |
|
function multisigMakeScript(m, wifs, network) { |
| 146 |
|
var keys = wifs.map(function(wif) { |
| 147 |
|
return bitcoin.ECPair.fromWIF(wif, network).getPublicKeyBuffer(); |
| 148 |
|
}); |
| 149 |
|
|
|
@@ 83-102 (lines=20) @@
|
| 80 |
|
var bareSize = (1 + SizeEstimation.SIZE_DER_SIGNATURE); |
| 81 |
|
var bareSig = 1 + bareSize; |
| 82 |
|
var p2shSig = 1 + bareSize + 1 + script.length; |
| 83 |
|
|
| 84 |
|
var p2wshHash = bitcoin.crypto.sha256(script); |
| 85 |
|
var p2wshScript = bitcoin.script.witnessScriptHash.output.encode(p2wshHash); |
| 86 |
|
|
| 87 |
|
var nestedSig = 1 + 1 + p2wshScript.length; |
| 88 |
|
var witSize = (1 + SizeEstimation.SIZE_DER_SIGNATURE); |
| 89 |
|
var nestedWit = witSize + 1 + 1 + script.length; |
| 90 |
|
|
| 91 |
|
return { |
| 92 |
|
bareSig: bareSig, |
| 93 |
|
p2shSig: p2shSig, |
| 94 |
|
p2wshScript: p2wshScript, |
| 95 |
|
nestedSig: nestedSig, |
| 96 |
|
nestedWit: nestedWit |
| 97 |
|
}; |
| 98 |
|
} |
| 99 |
|
|
| 100 |
|
function p2pkMakeScript(wif, network) { |
| 101 |
|
var uncompressed = bitcoin.ECPair.fromWIF(wif, network); |
| 102 |
|
var keyu = uncompressed.getPublicKeyBuffer(); |
| 103 |
|
return bitcoin.script.pubKey.output.encode(keyu); |
| 104 |
|
} |
| 105 |
|
|