@@ -24,7 +24,7 @@ use self::checksum::verify_checksum;
2424use crate :: miniscript:: decode:: Terminal ;
2525use crate :: miniscript:: { satisfy, Legacy , Miniscript , Segwitv0 } ;
2626use crate :: plan:: { AssetProvider , Assets , Plan } ;
27- use crate :: prelude:: * ;
27+ use crate :: { prelude:: * , MAX_ASSET_THRESHOLD } ;
2828use crate :: util:: { asset_combination, k_of_n} ;
2929use crate :: {
3030 expression, hash256, BareCtx , Error , ForEachKey , MiniscriptKey , Satisfier , ToPublicKey ,
@@ -571,33 +571,33 @@ impl Descriptor<DefiniteDescriptorKey> {
571571
572572impl Descriptor < DescriptorPublicKey > {
573573 /// Count total possible assets for a given descriptor.
574- pub fn count_assets ( & self ) -> u64 {
574+ pub fn count_assets ( & self ) -> u32 {
575575 match self {
576576 Descriptor :: Bare ( k) => k. as_inner ( ) . count_assets ( ) ,
577577 Descriptor :: Pkh ( _) => 1 ,
578578 Descriptor :: Wpkh ( _) => 1 ,
579579 Descriptor :: Sh ( k) => match k. as_inner ( ) {
580580 ShInner :: Wsh ( k) => match k. as_inner ( ) {
581581 WshInner :: SortedMulti ( k) => {
582- let n = k. pks . len ( ) as u64 ;
583- let k = k. k as u64 ;
584- k_of_n ( k, n)
582+ let n = k. pks . len ( ) as u32 ;
583+ let k = k. k as u32 ;
584+ k_of_n ( k, n) . unwrap ( )
585585 }
586586 WshInner :: Ms ( k) => k. count_assets ( ) ,
587587 } ,
588588 ShInner :: Wpkh ( _) => 1 ,
589589 ShInner :: SortedMulti ( k) => {
590- let n = k. clone ( ) . pks . len ( ) as u64 ;
591- let k = k. clone ( ) . k as u64 ;
592- k_of_n ( k, n)
590+ let n = k. clone ( ) . pks . len ( ) as u32 ;
591+ let k = k. clone ( ) . k as u32 ;
592+ k_of_n ( k, n) . unwrap ( )
593593 }
594594 ShInner :: Ms ( k) => k. count_assets ( ) ,
595595 } ,
596596 Descriptor :: Wsh ( k) => match k. as_inner ( ) {
597597 WshInner :: SortedMulti ( k) => {
598- let n = k. clone ( ) . pks . len ( ) as u64 ;
599- let k = k. clone ( ) . k as u64 ;
600- k_of_n ( k, n)
598+ let n = k. clone ( ) . pks . len ( ) as u32 ;
599+ let k = k. clone ( ) . k as u32 ;
600+ k_of_n ( k, n) . unwrap ( )
601601 }
602602 WshInner :: Ms ( k) => k. count_assets ( ) ,
603603 } ,
@@ -618,7 +618,7 @@ impl Descriptor<DescriptorPublicKey> {
618618 /// Get all possible assets for a given descriptor
619619 pub fn all_assets ( & self ) -> Result < Vec < Assets > , Error > {
620620 let threshold = self . count_assets ( ) ;
621- if threshold >= 1000 {
621+ if threshold >= MAX_ASSET_THRESHOLD {
622622 return Err ( Error :: MaxAssetThresholdExceeded ) ;
623623 }
624624 match self {
0 commit comments