From acfda83757e5c06977ecf43ca396b7fcd780d71b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20C=C3=A1rdenas?= Date: Tue, 18 Feb 2025 14:14:37 -0600 Subject: [PATCH] fix: calculate charms correctly when inscription is unbound (#440) --- .../core/protocol/inscription_sequencing.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/components/ordhook-core/src/core/protocol/inscription_sequencing.rs b/components/ordhook-core/src/core/protocol/inscription_sequencing.rs index e284577..6e86f77 100644 --- a/components/ordhook-core/src/core/protocol/inscription_sequencing.rs +++ b/components/ordhook-core/src/core/protocol/inscription_sequencing.rs @@ -550,6 +550,15 @@ async fn update_tx_inscriptions_with_consensus_sequence_data( None => inscription.curse_type.take(), }; + inscription.charms |= Sat(traversal.ordinal_number).charms(); + if is_cursed { + if block_identifier.index >= get_jubilee_block_height(network) { + Charm::Vindicated.set(&mut inscription.charms); + } else { + Charm::Cursed.set(&mut inscription.charms); + } + } + let (destination, satpoint_post_transfer, output_value) = compute_satpoint_post_transfer( &&*tx, input_index, @@ -588,14 +597,7 @@ async fn update_tx_inscriptions_with_consensus_sequence_data( } }; - inscription.charms |= Sat(traversal.ordinal_number).charms(); - if is_cursed { - if block_identifier.index >= get_jubilee_block_height(network) { - Charm::Vindicated.set(&mut inscription.charms); - } else { - Charm::Cursed.set(&mut inscription.charms); - } - } else { + if !is_cursed { // The reinscriptions_data needs to be augmented as we go, to handle transaction chaining. reinscriptions_data.insert(traversal.ordinal_number, traversal.get_inscription_id()); }