@@ -501,9 +501,6 @@ impl PackageTemplate {
501
501
pub ( crate ) fn aggregable ( & self ) -> bool {
502
502
self . aggregable
503
503
}
504
- pub ( crate ) fn feerate ( & self ) -> u64 {
505
- self . feerate_previous
506
- }
507
504
pub ( crate ) fn set_feerate ( & mut self , new_feerate : u64 ) {
508
505
self . feerate_previous = new_feerate;
509
506
}
@@ -655,6 +652,27 @@ impl PackageTemplate {
655
652
}
656
653
current_height + 15
657
654
}
655
+ pub ( crate ) fn compute_package_output < F : Deref , L : Deref > ( & self , predicted_weight : usize , input_amounts : u64 , fee_estimator : & F , logger : & L ) -> Option < ( u64 , u64 ) >
656
+ where F :: Target : FeeEstimator ,
657
+ L :: Target : Logger ,
658
+ {
659
+ // If old feerate is 0, first iteration of this claim, use normal fee calculation
660
+ if self . feerate_previous != 0 {
661
+ if let Some ( ( new_fee, feerate) ) = feerate_bump ( predicted_weight, input_amounts, self . feerate_previous , fee_estimator, logger) {
662
+ // If new computed fee is superior at the whole claimable amount burn all in fees
663
+ if new_fee > input_amounts {
664
+ return Some ( ( 0 , feerate) ) ;
665
+ } else {
666
+ return Some ( ( input_amounts - new_fee, feerate) ) ;
667
+ }
668
+ }
669
+ } else {
670
+ if let Some ( ( new_fee, feerate) ) = compute_fee_from_spent_amounts ( input_amounts, predicted_weight, fee_estimator, logger) {
671
+ return Some ( ( input_amounts - new_fee, feerate) ) ;
672
+ }
673
+ }
674
+ None
675
+ }
658
676
pub ( crate ) fn build_package ( txid : Txid , vout : u32 , input_solving_data : PackageSolvingData , absolute_timelock : u32 , aggregable : bool , height_original : u32 ) -> Self {
659
677
let malleability = match input_solving_data {
660
678
PackageSolvingData :: RevokedOutput ( ..) => { PackageMalleability :: Malleable } ,
@@ -805,29 +823,3 @@ fn feerate_bump<F: Deref, L: Deref>(predicted_weight: usize, input_amounts: u64,
805
823
} ;
806
824
Some ( ( new_fee, new_fee * 1000 / ( predicted_weight as u64 ) ) )
807
825
}
808
-
809
- /// Deduce a new proposed fee from the claiming transaction output value.
810
- /// If the new proposed fee is superior to the consumed outpoint's value, burn everything in miner's
811
- /// fee to deter counterparties attacker.
812
- pub ( crate ) fn compute_output_value < F : Deref , L : Deref > ( predicted_weight : usize , input_amounts : u64 , previous_feerate : u64 , fee_estimator : & F , logger : & L ) -> Option < ( u64 , u64 ) >
813
- where F :: Target : FeeEstimator ,
814
- L :: Target : Logger ,
815
- {
816
- // If old feerate is 0, first iteration of this claim, use normal fee calculation
817
- if previous_feerate != 0 {
818
- if let Some ( ( new_fee, feerate) ) = feerate_bump ( predicted_weight, input_amounts, previous_feerate, fee_estimator, logger) {
819
- // If new computed fee is superior at the whole claimable amount burn all in fees
820
- if new_fee > input_amounts {
821
- return Some ( ( 0 , feerate) ) ;
822
- } else {
823
- return Some ( ( input_amounts - new_fee, feerate) ) ;
824
- }
825
- }
826
- } else {
827
- if let Some ( ( new_fee, feerate) ) = compute_fee_from_spent_amounts ( input_amounts, predicted_weight, fee_estimator, logger) {
828
- return Some ( ( input_amounts - new_fee, feerate) ) ;
829
- }
830
- }
831
- None
832
- }
833
-
0 commit comments