Skip to content

Commit

Permalink
rm bscript circular dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
dcousens committed Sep 26, 2017
1 parent d364e65 commit bae9139
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 61 deletions.
12 changes: 10 additions & 2 deletions src/index.js
@@ -1,4 +1,13 @@
var script = require('./script')

var templates = require('./templates')
for (var key in templates) {
script[key] = templates[key]
}

module.exports = {
bufferutils: require('./bufferutils'), // TODO: remove in 4.0.0

Block: require('./block'),
ECPair: require('./ecpair'),
ECSignature: require('./ecsignature'),
Expand All @@ -7,9 +16,8 @@ module.exports = {
TransactionBuilder: require('./transaction_builder'),

address: require('./address'),
bufferutils: require('./bufferutils'), // TODO: remove in 4.0.0
crypto: require('./crypto'),
networks: require('./networks'),
opcodes: require('bitcoin-ops'),
script: require('./script')
script: script
}
5 changes: 0 additions & 5 deletions src/script.js
Expand Up @@ -212,8 +212,3 @@ module.exports = {
isPushOnly: isPushOnly,
isDefinedHashType: isDefinedHashType
}

var templates = require('./templates')
for (var key in templates) {
module.exports[key] = templates[key]
}
3 changes: 2 additions & 1 deletion src/templates/multisig/input.js
Expand Up @@ -2,6 +2,7 @@

var Buffer = require('safe-buffer').Buffer
var bscript = require('../../script')
var p2mso = require('./output')
var typeforce = require('typeforce')
var OPS = require('bitcoin-ops')

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

if (scriptPubKey) {
var scriptData = bscript.multisig.output.decode(scriptPubKey)
var scriptData = p2mso.decode(scriptPubKey)

if (signatures.length < scriptData.m) {
throw new TypeError('Not enough signatures provided')
Expand Down
22 changes: 14 additions & 8 deletions src/templates/scripthash/input.js
Expand Up @@ -4,6 +4,12 @@ var Buffer = require('safe-buffer').Buffer
var bscript = require('../../script')
var typeforce = require('typeforce')

var p2ms = require('../multisig/')
var p2pk = require('../pubkey/')
var p2pkh = require('../pubkeyhash/')
var p2wpkho = require('../witnesspubkeyhash/output')
var p2wsho = require('../witnessscripthash/output')

function check (script, allowIncomplete) {
var chunks = bscript.decompile(script)
if (chunks.length < 1) return false
Expand All @@ -22,19 +28,19 @@ function check (script, allowIncomplete) {

// is witness?
if (chunks.length === 1) {
return bscript.witnessScriptHash.output.check(redeemScriptChunks) ||
bscript.witnessPubKeyHash.output.check(redeemScriptChunks)
return p2wsho.check(redeemScriptChunks) ||
p2wpkho.check(redeemScriptChunks)
}

// match types
if (bscript.pubKeyHash.input.check(scriptSigChunks) &&
bscript.pubKeyHash.output.check(redeemScriptChunks)) return true
if (p2pkh.input.check(scriptSigChunks) &&
p2pkh.output.check(redeemScriptChunks)) return true

if (bscript.multisig.input.check(scriptSigChunks, allowIncomplete) &&
bscript.multisig.output.check(redeemScriptChunks)) return true
if (p2ms.input.check(scriptSigChunks, allowIncomplete) &&
p2ms.output.check(redeemScriptChunks)) return true

if (bscript.pubKey.input.check(scriptSigChunks) &&
bscript.pubKey.output.check(redeemScriptChunks)) return true
if (p2pk.input.check(scriptSigChunks) &&
p2pk.output.check(redeemScriptChunks)) return true

return false
}
Expand Down

0 comments on commit bae9139

Please sign in to comment.