@@ -24,7 +24,7 @@ use self::checksum::verify_checksum;
24
24
use crate :: miniscript:: decode:: Terminal ;
25
25
use crate :: miniscript:: { satisfy, Legacy , Miniscript , Segwitv0 } ;
26
26
use crate :: plan:: { AssetProvider , Assets , Plan } ;
27
- use crate :: prelude:: * ;
27
+ use crate :: { prelude:: * , MAX_ASSET_THRESHOLD } ;
28
28
use crate :: util:: { asset_combination, k_of_n} ;
29
29
use crate :: {
30
30
expression, hash256, BareCtx , Error , ForEachKey , MiniscriptKey , Satisfier , ToPublicKey ,
@@ -571,33 +571,33 @@ impl Descriptor<DefiniteDescriptorKey> {
571
571
572
572
impl Descriptor < DescriptorPublicKey > {
573
573
/// Count total possible assets for a given descriptor.
574
- pub fn count_assets ( & self ) -> u64 {
574
+ pub fn count_assets ( & self ) -> u32 {
575
575
match self {
576
576
Descriptor :: Bare ( k) => k. as_inner ( ) . count_assets ( ) ,
577
577
Descriptor :: Pkh ( _) => 1 ,
578
578
Descriptor :: Wpkh ( _) => 1 ,
579
579
Descriptor :: Sh ( k) => match k. as_inner ( ) {
580
580
ShInner :: Wsh ( k) => match k. as_inner ( ) {
581
581
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 ( )
585
585
}
586
586
WshInner :: Ms ( k) => k. count_assets ( ) ,
587
587
} ,
588
588
ShInner :: Wpkh ( _) => 1 ,
589
589
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 ( )
593
593
}
594
594
ShInner :: Ms ( k) => k. count_assets ( ) ,
595
595
} ,
596
596
Descriptor :: Wsh ( k) => match k. as_inner ( ) {
597
597
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 ( )
601
601
}
602
602
WshInner :: Ms ( k) => k. count_assets ( ) ,
603
603
} ,
@@ -618,7 +618,7 @@ impl Descriptor<DescriptorPublicKey> {
618
618
/// Get all possible assets for a given descriptor
619
619
pub fn all_assets ( & self ) -> Result < Vec < Assets > , Error > {
620
620
let threshold = self . count_assets ( ) ;
621
- if threshold >= 1000 {
621
+ if threshold >= MAX_ASSET_THRESHOLD {
622
622
return Err ( Error :: MaxAssetThresholdExceeded ) ;
623
623
}
624
624
match self {
0 commit comments