diff --git a/core-test/src/test/scala/org/bitcoins/core/script/locktime/LockTimeInterpreterTest.scala b/core-test/src/test/scala/org/bitcoins/core/script/locktime/LockTimeInterpreterTest.scala index 08adaf085c..95e108ebda 100644 --- a/core-test/src/test/scala/org/bitcoins/core/script/locktime/LockTimeInterpreterTest.scala +++ b/core-test/src/test/scala/org/bitcoins/core/script/locktime/LockTimeInterpreterTest.scala @@ -67,7 +67,7 @@ class LockTimeInterpreterTest extends FlatSpec with MustMatchers { ) val baseProgram = PreExecutionScriptProgram(t) val program = ScriptProgramTestUtil.toPreExecutionScriptProgram( - ScriptProgram(baseProgram, stack, script)) + baseProgram.updateStackAndScript(stack, script)) val newProgram = ScriptProgramTestUtil.toExecutedScriptProgram( LTI.opCheckLockTimeVerify(ScriptProgram.toExecutionInProgress(program))) newProgram.error must be(Some(ScriptErrorNegativeLockTime)) @@ -94,7 +94,7 @@ class LockTimeInterpreterTest extends FlatSpec with MustMatchers { val t = buildTxSigComponent(adjustedLockTimeTx) val baseProgram = PreExecutionScriptProgram(t) val program = ScriptProgramTestUtil.toPreExecutionScriptProgram( - ScriptProgram(baseProgram, stack, script)) + baseProgram.updateStackAndScript(stack, script)) val newProgram = ScriptProgramTestUtil.toExecutedScriptProgram( LTI.opCheckLockTimeVerify(ScriptProgram.toExecutionInProgress(program))) newProgram.error must be(Some(ScriptErrorUnsatisfiedLocktime)) @@ -121,7 +121,7 @@ class LockTimeInterpreterTest extends FlatSpec with MustMatchers { val t = buildTxSigComponent(adjustedLockTimeTx) val baseProgram = PreExecutionScriptProgram(t) val program = ScriptProgramTestUtil.toPreExecutionScriptProgram( - ScriptProgram(baseProgram, stack, script)) + baseProgram.updateStackAndScript(stack, script)) val newProgram = ScriptProgramTestUtil.toExecutedScriptProgram( LTI.opCheckLockTimeVerify(ScriptProgram.toExecutionInProgress(program))) newProgram.error must be(Some(ScriptErrorUnsatisfiedLocktime)) diff --git a/core/src/main/scala/org/bitcoins/core/script/ScriptProgram.scala b/core/src/main/scala/org/bitcoins/core/script/ScriptProgram.scala index ccbb904667..9de083c603 100644 --- a/core/src/main/scala/org/bitcoins/core/script/ScriptProgram.scala +++ b/core/src/main/scala/org/bitcoins/core/script/ScriptProgram.scala @@ -88,6 +88,16 @@ case class PreExecutionScriptProgram( tokens: Seq[ScriptToken]): PreExecutionScriptProgram = { this.copy(originalScript = tokens.toList) } + + def updateStackAndScript( + stackTokens: Seq[ScriptToken], + scriptTokens: Seq[ScriptToken]): PreExecutionScriptProgram = { + val updatedStack = this.updateStack(stackTokens) + val updatedScript = updatedStack.updateScript(scriptTokens) + require(updatedStack.stack == stackTokens) + require(updatedScript.script == scriptTokens) + updatedScript + } } object PreExecutionScriptProgram { @@ -237,17 +247,6 @@ object ScriptProgram extends BitcoinSLogger { } } - def apply( - oldProgram: PreExecutionScriptProgram, - stackTokens: Seq[ScriptToken], - scriptTokens: Seq[ScriptToken]): PreExecutionScriptProgram = { - val updatedStack = oldProgram.updateStack(stackTokens) - val updatedScript = updatedStack.updateScript(scriptTokens) - require(updatedStack.stack == stackTokens) - require(updatedScript.script == scriptTokens) - updatedScript - } - def apply( oldProgram: ExecutionInProgressScriptProgram, stackTokens: Seq[ScriptToken],