@@ -707,12 +707,9 @@ impl<Pk: MiniscriptKey, Ctx: ScriptContext> Terminal<Pk, Ctx> {
707707 /// In general, it is not recommended to use this function directly, but
708708 /// to instead call the corresponding function on a `Descriptor`, which
709709 /// will handle the segwit/non-segwit technicalities for you.
710- pub fn script_size < ToPkCtx : Copy > ( & self , to_pk_ctx : ToPkCtx ) -> usize
711- where
712- Pk : ToPublicKey < ToPkCtx > ,
713- {
710+ pub fn script_size ( & self ) -> usize {
714711 match * self {
715- Terminal :: PkK ( ref pk) => pk. serialized_len ( to_pk_ctx ) ,
712+ Terminal :: PkK ( ref pk) => pk. serialized_len ( ) ,
716713 Terminal :: PkH ( ..) => 24 ,
717714 Terminal :: After ( n) => script_num_size ( n as usize ) + 1 ,
718715 Terminal :: Older ( n) => script_num_size ( n as usize ) + 1 ,
@@ -722,55 +719,37 @@ impl<Pk: MiniscriptKey, Ctx: ScriptContext> Terminal<Pk, Ctx> {
722719 Terminal :: Hash160 ( ..) => 21 + 6 ,
723720 Terminal :: True => 1 ,
724721 Terminal :: False => 1 ,
725- Terminal :: Alt ( ref sub) => sub. node . script_size ( to_pk_ctx ) + 2 ,
726- Terminal :: Swap ( ref sub) => sub. node . script_size ( to_pk_ctx ) + 1 ,
727- Terminal :: Check ( ref sub) => sub. node . script_size ( to_pk_ctx ) + 1 ,
728- Terminal :: DupIf ( ref sub) => sub. node . script_size ( to_pk_ctx ) + 3 ,
722+ Terminal :: Alt ( ref sub) => sub. node . script_size ( ) + 2 ,
723+ Terminal :: Swap ( ref sub) => sub. node . script_size ( ) + 1 ,
724+ Terminal :: Check ( ref sub) => sub. node . script_size ( ) + 1 ,
725+ Terminal :: DupIf ( ref sub) => sub. node . script_size ( ) + 3 ,
729726 Terminal :: Verify ( ref sub) => {
730- sub. node . script_size ( to_pk_ctx) + if sub. ext . has_free_verify { 0 } else { 1 }
731- }
732- Terminal :: NonZero ( ref sub) => sub. node . script_size ( to_pk_ctx) + 4 ,
733- Terminal :: ZeroNotEqual ( ref sub) => sub. node . script_size ( to_pk_ctx) + 1 ,
734- Terminal :: AndV ( ref l, ref r) => {
735- l. node . script_size ( to_pk_ctx) + r. node . script_size ( to_pk_ctx)
736- }
737- Terminal :: AndB ( ref l, ref r) => {
738- l. node . script_size ( to_pk_ctx) + r. node . script_size ( to_pk_ctx) + 1
727+ sub. node . script_size ( ) + if sub. ext . has_free_verify { 0 } else { 1 }
739728 }
729+ Terminal :: NonZero ( ref sub) => sub. node . script_size ( ) + 4 ,
730+ Terminal :: ZeroNotEqual ( ref sub) => sub. node . script_size ( ) + 1 ,
731+ Terminal :: AndV ( ref l, ref r) => l. node . script_size ( ) + r. node . script_size ( ) ,
732+ Terminal :: AndB ( ref l, ref r) => l. node . script_size ( ) + r. node . script_size ( ) + 1 ,
740733 Terminal :: AndOr ( ref a, ref b, ref c) => {
741- a. node . script_size ( to_pk_ctx)
742- + b. node . script_size ( to_pk_ctx)
743- + c. node . script_size ( to_pk_ctx)
744- + 3
745- }
746- Terminal :: OrB ( ref l, ref r) => {
747- l. node . script_size ( to_pk_ctx) + r. node . script_size ( to_pk_ctx) + 1
748- }
749- Terminal :: OrD ( ref l, ref r) => {
750- l. node . script_size ( to_pk_ctx) + r. node . script_size ( to_pk_ctx) + 3
751- }
752- Terminal :: OrC ( ref l, ref r) => {
753- l. node . script_size ( to_pk_ctx) + r. node . script_size ( to_pk_ctx) + 2
754- }
755- Terminal :: OrI ( ref l, ref r) => {
756- l. node . script_size ( to_pk_ctx) + r. node . script_size ( to_pk_ctx) + 3
734+ a. node . script_size ( ) + b. node . script_size ( ) + c. node . script_size ( ) + 3
757735 }
736+ Terminal :: OrB ( ref l, ref r) => l. node . script_size ( ) + r. node . script_size ( ) + 1 ,
737+ Terminal :: OrD ( ref l, ref r) => l. node . script_size ( ) + r. node . script_size ( ) + 3 ,
738+ Terminal :: OrC ( ref l, ref r) => l. node . script_size ( ) + r. node . script_size ( ) + 2 ,
739+ Terminal :: OrI ( ref l, ref r) => l. node . script_size ( ) + r. node . script_size ( ) + 3 ,
758740 Terminal :: Thresh ( k, ref subs) => {
759741 assert ! ( !subs. is_empty( ) , "threshold must be nonempty" ) ;
760742 script_num_size ( k) // k
761743 + 1 // EQUAL
762- + subs. iter ( ) . map ( |s| s. node . script_size ( to_pk_ctx ) ) . sum :: < usize > ( )
744+ + subs. iter ( ) . map ( |s| s. node . script_size ( ) ) . sum :: < usize > ( )
763745 + subs. len ( ) // ADD
764746 - 1 // no ADD on first element
765747 }
766748 Terminal :: Multi ( k, ref pks) => {
767749 script_num_size ( k)
768750 + 1
769751 + script_num_size ( pks. len ( ) )
770- + pks
771- . iter ( )
772- . map ( |pk| pk. serialized_len ( to_pk_ctx) )
773- . sum :: < usize > ( )
752+ + pks. iter ( ) . map ( |pk| pk. serialized_len ( ) ) . sum :: < usize > ( )
774753 }
775754 }
776755 }
0 commit comments