pub struct InMemorySigner {
pub funding_key: SecretKey,
pub revocation_base_key: SecretKey,
pub payment_key: SecretKey,
pub delayed_payment_base_key: SecretKey,
pub htlc_base_key: SecretKey,
pub commitment_seed: [u8; 32],
/* private fields */
}Expand description
A simple implementation of Sign that just keeps the private keys in memory.
This implementation performs no policy checks and is insufficient by itself as a secure external signer.
Fields§
§funding_key: SecretKeyHolder secret key in the 2-of-2 multisig script of a channel. This key also backs the holder’s anchor output in a commitment transaction, if one is present.
revocation_base_key: SecretKeyHolder secret key for blinded revocation pubkey.
payment_key: SecretKeyHolder secret key used for our balance in counterparty-broadcasted commitment transactions.
delayed_payment_base_key: SecretKeyHolder secret key used in an HTLC transaction.
htlc_base_key: SecretKeyHolder HTLC secret key used in commitment transaction HTLC outputs.
commitment_seed: [u8; 32]Commitment seed.
Implementations§
Source§impl InMemorySigner
impl InMemorySigner
Sourcepub fn new<C: Signing>(
secp_ctx: &Secp256k1<C>,
node_secret: SecretKey,
funding_key: SecretKey,
revocation_base_key: SecretKey,
payment_key: SecretKey,
delayed_payment_base_key: SecretKey,
htlc_base_key: SecretKey,
commitment_seed: [u8; 32],
channel_value_satoshis: u64,
channel_keys_id: [u8; 32],
) -> InMemorySigner
pub fn new<C: Signing>( secp_ctx: &Secp256k1<C>, node_secret: SecretKey, funding_key: SecretKey, revocation_base_key: SecretKey, payment_key: SecretKey, delayed_payment_base_key: SecretKey, htlc_base_key: SecretKey, commitment_seed: [u8; 32], channel_value_satoshis: u64, channel_keys_id: [u8; 32], ) -> InMemorySigner
Creates a new InMemorySigner.
Sourcepub fn counterparty_pubkeys(&self) -> &ChannelPublicKeys
pub fn counterparty_pubkeys(&self) -> &ChannelPublicKeys
Returns the counterparty’s pubkeys.
Will panic if BaseSign::provide_channel_parameters has not been called before.
Sourcepub fn counterparty_selected_contest_delay(&self) -> u16
pub fn counterparty_selected_contest_delay(&self) -> u16
Returns the contest_delay value specified by our counterparty and applied on holder-broadcastable
transactions, i.e., the amount of time that we have to wait to recover our funds if we
broadcast a transaction.
Will panic if BaseSign::provide_channel_parameters has not been called before.
Sourcepub fn holder_selected_contest_delay(&self) -> u16
pub fn holder_selected_contest_delay(&self) -> u16
Returns the contest_delay value specified by us and applied on transactions broadcastable
by our counterparty, i.e., the amount of time that they have to wait to recover their funds
if they broadcast a transaction.
Will panic if BaseSign::provide_channel_parameters has not been called before.
Sourcepub fn is_outbound(&self) -> bool
pub fn is_outbound(&self) -> bool
Returns whether the holder is the initiator.
Will panic if BaseSign::provide_channel_parameters has not been called before.
Sourcepub fn funding_outpoint(&self) -> &OutPoint
pub fn funding_outpoint(&self) -> &OutPoint
Funding outpoint
Will panic if BaseSign::provide_channel_parameters has not been called before.
Sourcepub fn get_channel_parameters(&self) -> &ChannelTransactionParameters
pub fn get_channel_parameters(&self) -> &ChannelTransactionParameters
Returns a ChannelTransactionParameters for this channel, to be used when verifying or
building transactions.
Will panic if BaseSign::provide_channel_parameters has not been called before.
Sourcepub fn opt_anchors(&self) -> bool
pub fn opt_anchors(&self) -> bool
Returns whether anchors should be used.
Will panic if BaseSign::provide_channel_parameters has not been called before.
Sourcepub fn sign_counterparty_payment_input<C: Signing>(
&self,
spend_tx: &Transaction,
input_idx: usize,
descriptor: &StaticPaymentOutputDescriptor,
secp_ctx: &Secp256k1<C>,
) -> Result<Vec<Vec<u8>>, ()>
pub fn sign_counterparty_payment_input<C: Signing>( &self, spend_tx: &Transaction, input_idx: usize, descriptor: &StaticPaymentOutputDescriptor, secp_ctx: &Secp256k1<C>, ) -> Result<Vec<Vec<u8>>, ()>
Sign the single input of spend_tx at index input_idx, which spends the output described
by descriptor, returning the witness stack for the input.
Returns an error if the input at input_idx does not exist, has a non-empty script_sig,
is not spending the outpoint described by descriptor.outpoint,
or if an output descriptor script_pubkey does not match the one we can spend.
Sourcepub fn sign_dynamic_p2wsh_input<C: Signing>(
&self,
spend_tx: &Transaction,
input_idx: usize,
descriptor: &DelayedPaymentOutputDescriptor,
secp_ctx: &Secp256k1<C>,
) -> Result<Vec<Vec<u8>>, ()>
pub fn sign_dynamic_p2wsh_input<C: Signing>( &self, spend_tx: &Transaction, input_idx: usize, descriptor: &DelayedPaymentOutputDescriptor, secp_ctx: &Secp256k1<C>, ) -> Result<Vec<Vec<u8>>, ()>
Sign the single input of spend_tx at index input_idx which spends the output
described by descriptor, returning the witness stack for the input.
Returns an error if the input at input_idx does not exist, has a non-empty script_sig,
is not spending the outpoint described by descriptor.outpoint, does not have a
sequence set to descriptor.to_self_delay, or if an output descriptor
script_pubkey does not match the one we can spend.
Trait Implementations§
Source§impl BaseSign for InMemorySigner
impl BaseSign for InMemorySigner
Source§fn get_per_commitment_point(
&self,
idx: u64,
secp_ctx: &Secp256k1<All>,
) -> PublicKey
fn get_per_commitment_point( &self, idx: u64, secp_ctx: &Secp256k1<All>, ) -> PublicKey
Source§fn release_commitment_secret(&self, idx: u64) -> [u8; 32]
fn release_commitment_secret(&self, idx: u64) -> [u8; 32]
Source§fn validate_holder_commitment(
&self,
_holder_tx: &HolderCommitmentTransaction,
_preimages: Vec<PaymentPreimage>,
) -> Result<(), ()>
fn validate_holder_commitment( &self, _holder_tx: &HolderCommitmentTransaction, _preimages: Vec<PaymentPreimage>, ) -> Result<(), ()>
Source§fn pubkeys(&self) -> &ChannelPublicKeys
fn pubkeys(&self) -> &ChannelPublicKeys
Source§fn channel_keys_id(&self) -> [u8; 32]
fn channel_keys_id(&self) -> [u8; 32]
SpendableOutputDescriptor types. This should be sufficient to identify this
BaseSign object uniquely and lookup or re-derive its keys.Source§fn sign_counterparty_commitment(
&self,
commitment_tx: &CommitmentTransaction,
_preimages: Vec<PaymentPreimage>,
secp_ctx: &Secp256k1<All>,
) -> Result<(Signature, Vec<Signature>), ()>
fn sign_counterparty_commitment( &self, commitment_tx: &CommitmentTransaction, _preimages: Vec<PaymentPreimage>, secp_ctx: &Secp256k1<All>, ) -> Result<(Signature, Vec<Signature>), ()>
Source§fn validate_counterparty_revocation(
&self,
_idx: u64,
_secret: &SecretKey,
) -> Result<(), ()>
fn validate_counterparty_revocation( &self, _idx: u64, _secret: &SecretKey, ) -> Result<(), ()>
Source§fn sign_holder_commitment_and_htlcs(
&self,
commitment_tx: &HolderCommitmentTransaction,
secp_ctx: &Secp256k1<All>,
) -> Result<(Signature, Vec<Signature>), ()>
fn sign_holder_commitment_and_htlcs( &self, commitment_tx: &HolderCommitmentTransaction, secp_ctx: &Secp256k1<All>, ) -> Result<(Signature, Vec<Signature>), ()>
Source§fn sign_justice_revoked_output(
&self,
justice_tx: &Transaction,
input: usize,
amount: u64,
per_commitment_key: &SecretKey,
secp_ctx: &Secp256k1<All>,
) -> Result<Signature, ()>
fn sign_justice_revoked_output( &self, justice_tx: &Transaction, input: usize, amount: u64, per_commitment_key: &SecretKey, secp_ctx: &Secp256k1<All>, ) -> Result<Signature, ()>
to_local output when our counterparty broadcasts an old state. Read moreSource§fn sign_justice_revoked_htlc(
&self,
justice_tx: &Transaction,
input: usize,
amount: u64,
per_commitment_key: &SecretKey,
htlc: &HTLCOutputInCommitment,
secp_ctx: &Secp256k1<All>,
) -> Result<Signature, ()>
fn sign_justice_revoked_htlc( &self, justice_tx: &Transaction, input: usize, amount: u64, per_commitment_key: &SecretKey, htlc: &HTLCOutputInCommitment, secp_ctx: &Secp256k1<All>, ) -> Result<Signature, ()>
Source§fn sign_counterparty_htlc_transaction(
&self,
htlc_tx: &Transaction,
input: usize,
amount: u64,
per_commitment_point: &PublicKey,
htlc: &HTLCOutputInCommitment,
secp_ctx: &Secp256k1<All>,
) -> Result<Signature, ()>
fn sign_counterparty_htlc_transaction( &self, htlc_tx: &Transaction, input: usize, amount: u64, per_commitment_point: &PublicKey, htlc: &HTLCOutputInCommitment, secp_ctx: &Secp256k1<All>, ) -> Result<Signature, ()>
Source§fn sign_closing_transaction(
&self,
closing_tx: &ClosingTransaction,
secp_ctx: &Secp256k1<All>,
) -> Result<Signature, ()>
fn sign_closing_transaction( &self, closing_tx: &ClosingTransaction, secp_ctx: &Secp256k1<All>, ) -> Result<Signature, ()>
Source§fn sign_holder_anchor_input(
&self,
anchor_tx: &Transaction,
input: usize,
secp_ctx: &Secp256k1<All>,
) -> Result<Signature, ()>
fn sign_holder_anchor_input( &self, anchor_tx: &Transaction, input: usize, secp_ctx: &Secp256k1<All>, ) -> Result<Signature, ()>
anchor_tx, which spends the commitment transaction, at index input.Source§fn sign_channel_announcement(
&self,
msg: &UnsignedChannelAnnouncement,
secp_ctx: &Secp256k1<All>,
) -> Result<(Signature, Signature), ()>
fn sign_channel_announcement( &self, msg: &UnsignedChannelAnnouncement, secp_ctx: &Secp256k1<All>, ) -> Result<(Signature, Signature), ()>
Source§fn provide_channel_parameters(
&mut self,
channel_parameters: &ChannelTransactionParameters,
)
fn provide_channel_parameters( &mut self, channel_parameters: &ChannelTransactionParameters, )
counterparty_selected/holder_selected_contest_delay and funding outpoint. Since these
are static channel data, they MUST NOT be allowed to change to different values once set,
as LDK may call this method more than once. Read moreSource§impl Clone for InMemorySigner
impl Clone for InMemorySigner
Source§fn clone(&self) -> InMemorySigner
fn clone(&self) -> InMemorySigner
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source. Read more