Update assert_weight test to account for a range up to 8 bytes.

Weights fluctuate because of the length of the signatures. Valid ecdsa signatures can have 68, 69, 70, 71, or 72 bytes. Since most of our transactions have 2 signatures the weight can be up to 8 bytes less than the static weight (4 bytes per signature).
This commit is contained in:
Philipp Hoenisch 2021-05-11 10:39:56 +10:00
parent d96e20a5b0
commit 330269a1e9
No known key found for this signature in database
GPG Key ID: E5F8E74C672BC666

View File

@ -393,40 +393,26 @@ mod tests {
.unwrap(); .unwrap();
let refund_transaction = bob_state6.signed_refund_transaction().unwrap(); let refund_transaction = bob_state6.signed_refund_transaction().unwrap();
assert_weight( assert_weight(redeem_transaction, TxRedeem::weight(), "TxRedeem");
redeem_transaction.get_weight(), assert_weight(cancel_transaction, TxCancel::weight(), "TxCancel");
TxRedeem::weight(), assert_weight(punish_transaction, TxPunish::weight(), "TxPunish");
"TxRedeem", assert_weight(refund_transaction, TxRefund::weight(), "TxRefund");
);
assert_weight(
cancel_transaction.get_weight(),
TxCancel::weight(),
"TxCancel",
);
assert_weight(
punish_transaction.get_weight(),
TxPunish::weight(),
"TxPunish",
);
assert_weight(
refund_transaction.get_weight(),
TxRefund::weight(),
"TxRefund",
);
} }
// Weights fluctuate -+1 wu because of the length of the signatures. // Weights fluctuate because of the length of the signatures. Valid ecdsa
// Some of our transactions have 2 signatures and hence the weight can fluctuate // signatures can have 68, 69, 70, 71, or 72 bytes. Since most of our
// +-2 // transactions have 2 signatures the weight can be up to 8 bytes less than
fn assert_weight(is_weight: usize, expected_weight: usize, tx_name: &str) { // the static weight (4 bytes per signature).
fn assert_weight(transaction: Transaction, expected_weight: usize, tx_name: &str) {
let is_weight = transaction.get_weight();
assert!( assert!(
is_weight + 1 == expected_weight expected_weight - is_weight <= 8,
|| is_weight + 2 == expected_weight "{} to have weight {}, but was {}. Transaction: {:#?}",
|| is_weight == expected_weight,
"{} to have weight {}, but was {}",
tx_name, tx_name,
expected_weight, expected_weight,
is_weight is_weight,
transaction
) )
} }
} }