Skip to content

Commit 4f041b2

Browse files
authored
Merge pull request bitcoinjs#907 from bitcoinjs/nocirc
rm bitcoin.script circular dependencies with templates
2 parents 7795ffd + bae9139 commit 4f041b2

File tree

5 files changed

+68
-61
lines changed

5 files changed

+68
-61
lines changed

src/index.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1+
var script = require('./script')
2+
3+
var templates = require('./templates')
4+
for (var key in templates) {
5+
script[key] = templates[key]
6+
}
7+
18
module.exports = {
9+
bufferutils: require('./bufferutils'), // TODO: remove in 4.0.0
10+
211
Block: require('./block'),
312
ECPair: require('./ecpair'),
413
ECSignature: require('./ecsignature'),
@@ -7,9 +16,8 @@ module.exports = {
716
TransactionBuilder: require('./transaction_builder'),
817

918
address: require('./address'),
10-
bufferutils: require('./bufferutils'), // TODO: remove in 4.0.0
1119
crypto: require('./crypto'),
1220
networks: require('./networks'),
1321
opcodes: require('bitcoin-ops'),
14-
script: require('./script')
22+
script: script
1523
}

src/script.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,3 @@ module.exports = {
212212
isPushOnly: isPushOnly,
213213
isDefinedHashType: isDefinedHashType
214214
}
215-
216-
var templates = require('./templates')
217-
for (var key in templates) {
218-
module.exports[key] = templates[key]
219-
}

src/templates/multisig/input.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
var Buffer = require('safe-buffer').Buffer
44
var bscript = require('../../script')
5+
var p2mso = require('./output')
56
var typeforce = require('typeforce')
67
var OPS = require('bitcoin-ops')
78

@@ -28,7 +29,7 @@ function encodeStack (signatures, scriptPubKey) {
2829
typeforce([partialSignature], signatures)
2930

3031
if (scriptPubKey) {
31-
var scriptData = bscript.multisig.output.decode(scriptPubKey)
32+
var scriptData = p2mso.decode(scriptPubKey)
3233

3334
if (signatures.length < scriptData.m) {
3435
throw new TypeError('Not enough signatures provided')

src/templates/scripthash/input.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ var Buffer = require('safe-buffer').Buffer
44
var bscript = require('../../script')
55
var typeforce = require('typeforce')
66

7+
var p2ms = require('../multisig/')
8+
var p2pk = require('../pubkey/')
9+
var p2pkh = require('../pubkeyhash/')
10+
var p2wpkho = require('../witnesspubkeyhash/output')
11+
var p2wsho = require('../witnessscripthash/output')
12+
713
function check (script, allowIncomplete) {
814
var chunks = bscript.decompile(script)
915
if (chunks.length < 1) return false
@@ -22,19 +28,19 @@ function check (script, allowIncomplete) {
2228

2329
// is witness?
2430
if (chunks.length === 1) {
25-
return bscript.witnessScriptHash.output.check(redeemScriptChunks) ||
26-
bscript.witnessPubKeyHash.output.check(redeemScriptChunks)
31+
return p2wsho.check(redeemScriptChunks) ||
32+
p2wpkho.check(redeemScriptChunks)
2733
}
2834

2935
// match types
30-
if (bscript.pubKeyHash.input.check(scriptSigChunks) &&
31-
bscript.pubKeyHash.output.check(redeemScriptChunks)) return true
36+
if (p2pkh.input.check(scriptSigChunks) &&
37+
p2pkh.output.check(redeemScriptChunks)) return true
3238

33-
if (bscript.multisig.input.check(scriptSigChunks, allowIncomplete) &&
34-
bscript.multisig.output.check(redeemScriptChunks)) return true
39+
if (p2ms.input.check(scriptSigChunks, allowIncomplete) &&
40+
p2ms.output.check(redeemScriptChunks)) return true
3541

36-
if (bscript.pubKey.input.check(scriptSigChunks) &&
37-
bscript.pubKey.output.check(redeemScriptChunks)) return true
42+
if (p2pk.input.check(scriptSigChunks) &&
43+
p2pk.output.check(redeemScriptChunks)) return true
3844

3945
return false
4046
}

0 commit comments

Comments
 (0)