@@ -331,6 +331,33 @@ public function testRejectsInvalidSigHashType()
331331 $ input ->getSigHash (20 );
332332 }
333333
334+ public function testSetCheckerCreatorNoInputs ()
335+ {
336+ $ signer = new Signer ((new TxBuilder ())
337+ ->get (), Bitcoin::getEcAdapter ());
338+ $ ecAdapter = Bitcoin::getEcAdapter ();
339+ $ checkerCreator = \BitWasp \Bitcoin \Transaction \Factory \Checker \CheckerCreator::fromEcAdapter ($ ecAdapter );
340+ $ signer ->setCheckerCreator ($ checkerCreator );
341+ }
342+
343+ public function testSetCheckerCreator ()
344+ {
345+ $ outpoint = new OutPoint (new Buffer ('' , 32 ), 0xffffffff );
346+ $ txOut = new TransactionOutput (5000000000 , ScriptFactory::scriptPubKey ()->p2pkh ((new Random ())->bytes (20 )));
347+ $ signer = new Signer ((new TxBuilder ())
348+ ->inputs ([new TransactionInput ($ outpoint , new Script ())])
349+ ->outputs ([new TransactionOutput (4900000000 , new Script )])
350+ ->get (), Bitcoin::getEcAdapter ());
351+ $ input = $ signer ->input (0 , $ txOut );
352+ $ ecAdapter = Bitcoin::getEcAdapter ();
353+ $ checkerCreator = \BitWasp \Bitcoin \Transaction \Factory \Checker \CheckerCreator::fromEcAdapter ($ ecAdapter );
354+
355+ $ this ->expectException (SignerException::class);
356+ $ this ->expectExceptionMessage ("Cannot change CheckerCreator after inputs have been parsed " );
357+
358+ $ signer ->setCheckerCreator ($ checkerCreator );
359+ }
360+
334361 public function testDiscouragesInvalidKeysInScripts ()
335362 {
336363 $ caught = false ;
0 commit comments