Struct lightning::chain::keysinterface::InMemorySigner
source · 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 WriteableEcdsaChannelSigner
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: SecretKey
Holder 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: SecretKey
Holder secret key for blinded revocation pubkey.
payment_key: SecretKey
Holder secret key used for our balance in counterparty-broadcasted commitment transactions.
delayed_payment_base_key: SecretKey
Holder secret key used in an HTLC transaction.
htlc_base_key: SecretKey
Holder 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>,
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>, 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 ChannelSigner::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 ChannelSigner::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 ChannelSigner::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 ChannelSigner::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 ChannelSigner::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 ChannelSigner::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 ChannelSigner::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 ChannelSigner for InMemorySigner
impl ChannelSigner 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
EcdsaChannelSigner
object uniquely and lookup or re-derive its keys.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. Read moresource§impl Clone for InMemorySigner
impl Clone for InMemorySigner
source§fn clone(&self) -> InMemorySigner
fn clone(&self) -> InMemorySigner
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl EcdsaChannelSigner for InMemorySigner
impl EcdsaChannelSigner for InMemorySigner
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
.