Skip to content

Commit

Permalink
Create assert addresses + Bug fix
Browse files Browse the repository at this point in the history
  • Loading branch information
ekrembal committed Feb 28, 2025
1 parent 0a1e847 commit 73ff473
Show file tree
Hide file tree
Showing 7 changed files with 160 additions and 61 deletions.
6 changes: 3 additions & 3 deletions core/src/actor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -230,19 +230,19 @@ impl Actor {
))?;
pks.challenge_sending_watchtowers_pk =
ClementineBitVMPublicKeys::vec_to_array::<44>(&pk_vec);
for i in (0..pks.bitvm_pks.0.len()) {
for i in 0..pks.bitvm_pks.0.len() {
let pk_vec = self.derive_winternitz_pk(WinternitzDerivationPath::BitvmAssert(
32, 2, i as u32, txid, paramset,
))?;
pks.bitvm_pks.0[i] = ClementineBitVMPublicKeys::vec_to_array::<68>(&pk_vec);
}
for i in (0..pks.bitvm_pks.1.len()) {
for i in 0..pks.bitvm_pks.1.len() {
let pk_vec = self.derive_winternitz_pk(WinternitzDerivationPath::BitvmAssert(
32, 3, i as u32, txid, paramset,
))?;
pks.bitvm_pks.1[i] = ClementineBitVMPublicKeys::vec_to_array::<68>(&pk_vec);
}
for i in (0..pks.bitvm_pks.2.len()) {
for i in 0..pks.bitvm_pks.2.len() {
let pk_vec = self.derive_winternitz_pk(WinternitzDerivationPath::BitvmAssert(
20, 4, i as u32, txid, paramset,
))?;
Expand Down
5 changes: 2 additions & 3 deletions core/src/builder/script.rs
Original file line number Diff line number Diff line change
Expand Up @@ -387,8 +387,7 @@ fn get_script_from_arr<T: SpendableScript>(
}
#[cfg(test)]
mod tests {
use crate::actor::{Actor, WinternitzDerivationPath};
use crate::config::protocol::ProtocolParamsetName;
use crate::actor::Actor;
use crate::extended_rpc::ExtendedRpc;
use crate::utils;
use std::sync::Arc;
Expand Down Expand Up @@ -537,7 +536,7 @@ mod tests {
use crate::builder::transaction::output::UnspentTxOut;
use crate::builder::transaction::{TransactionType, TxHandlerBuilder, DEFAULT_SEQUENCE};
use crate::utils::SECP;
use bitcoin::{Amount, Sequence, TxOut, Txid};
use bitcoin::{Amount, Sequence, TxOut};

async fn create_taproot_test_tx(
rpc: &ExtendedRpc,
Expand Down
8 changes: 4 additions & 4 deletions core/src/builder/transaction/creator.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use crate::actor::Actor;
use crate::actor::WinternitzDerivationPath::WatchtowerChallenge;
use crate::builder::script::{SpendableScript, WinternitzCommit};
use crate::builder;
use crate::builder::script::WinternitzCommit;
use crate::builder::transaction::{
create_assert_timeout_txhandlers, create_challenge_timeout_txhandler, create_kickoff_txhandler,
create_mini_asserts, create_round_txhandler, create_unspent_kickoff_txhandlers, AssertScripts,
Expand All @@ -13,7 +14,6 @@ use crate::errors::BridgeError;
use crate::operator::PublicHash;
use crate::rpc::clementine::KickoffId;
use crate::utils::ClementineBitVMPublicKeys;
use crate::{builder, utils};
use bitcoin::secp256k1::SecretKey;
use bitcoin::XOnlyPublicKey;
use std::collections::BTreeMap;
Expand Down Expand Up @@ -290,7 +290,7 @@ pub async fn create_txhandlers(
let bitvm_pks =
actor.generate_bitvm_pks_for_deposit(deposit_data.deposit_outpoint.txid, paramset)?;

let assert_scripts = bitvm_pks.get_assert_scripts();
let assert_scripts = bitvm_pks.get_assert_scripts(operator_data.xonly_pk);

let kickoff_txhandler = create_kickoff_txhandler(
kickoff_id,
Expand Down Expand Up @@ -555,7 +555,7 @@ mod tests {

use crate::rpc::clementine::{self};
use crate::utils::ClementineBitVMPublicKeys;
use crate::{rpc::clementine::DepositParams, test::common::*, utils, EVMAddress};
use crate::{rpc::clementine::DepositParams, test::common::*, EVMAddress};
use bitcoin::Txid;
use futures::future::try_join_all;

Expand Down
2 changes: 1 addition & 1 deletion core/src/builder/transaction/sign.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use crate::actor::{Actor, WinternitzDerivationPath};
use crate::builder;
use crate::builder::transaction::creator::ReimburseDbCache;
use crate::builder::transaction::{DepositData, TransactionType};
use crate::config::BridgeConfig;
Expand All @@ -8,7 +9,6 @@ use crate::operator::Operator;
use crate::rpc::clementine::{KickoffId, RawSignedTx, RawSignedTxs};
use crate::utils::ClementineBitVMPublicKeys;
use crate::watchtower::Watchtower;
use crate::{builder, utils};
use bitcoin::{Transaction, XOnlyPublicKey};

#[derive(Debug, Clone)]
Expand Down
2 changes: 2 additions & 0 deletions core/src/operator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -528,10 +528,12 @@ impl Operator {
&self,
deposit_txid: Txid,
) -> Result<Vec<winternitz::PublicKey>, BridgeError> {
tracing::error!("Generating assert winternitz pubkeys");
let bitvm_pks = self
.signer
.generate_bitvm_pks_for_deposit(deposit_txid, self.config.protocol_paramset())?;
let flattened_wpks = bitvm_pks.to_flattened_vec();
tracing::error!("Flattened wpks: {:?}", flattened_wpks);
Ok(flattened_wpks)
}
/// Generates Winternitz public keys for every blockhash commit to be used in kickoff utxos.
Expand Down
Loading

0 comments on commit 73ff473

Please sign in to comment.