ddk_manager/contract/
signed_contract.rsuse crate::conversion_utils::PROTOCOL_VERSION;
use crate::ChannelId;
use super::accepted_contract::AcceptedContract;
use ddk_messages::CetAdaptorSignature;
use ddk_messages::CetAdaptorSignatures;
use ddk_messages::FundingSignatures;
use ddk_messages::SignDlc;
use secp256k1_zkp::ecdsa::Signature;
use secp256k1_zkp::EcdsaAdaptorSignature;
#[derive(Clone)]
pub struct SignedContract {
pub accepted_contract: AcceptedContract,
pub adaptor_signatures: Option<Vec<EcdsaAdaptorSignature>>,
pub offer_refund_signature: Signature,
pub funding_signatures: FundingSignatures,
pub channel_id: Option<ChannelId>,
}
impl SignedContract {
pub(crate) fn get_sign_dlc(
&self,
cet_adaptor_signatures: Vec<EcdsaAdaptorSignature>,
) -> SignDlc {
let contract_id = self.accepted_contract.get_contract_id();
SignDlc {
protocol_version: PROTOCOL_VERSION,
contract_id,
cet_adaptor_signatures: CetAdaptorSignatures {
ecdsa_adaptor_signatures: cet_adaptor_signatures
.into_iter()
.map(|x| CetAdaptorSignature { signature: x })
.collect(),
},
refund_signature: self.offer_refund_signature,
funding_signatures: self.funding_signatures.clone(),
}
}
}