breez_sdk_spark/signer/
external_spark.rs1use crate::error::SignerError;
10
11use super::external_spark_types::{
12 ExternalFrostJob, ExternalFrostShareResult, ExternalPrepareClaimRequest,
13 ExternalPrepareLightningReceiveRequest, ExternalPrepareStaticDepositClaimRequest,
14 ExternalPrepareStaticDepositRequest, ExternalPrepareTokenTransactionRequest,
15 ExternalPrepareTransferRequest, ExternalPreparedClaim, ExternalPreparedLightningReceive,
16 ExternalPreparedStaticDeposit, ExternalPreparedStaticDepositClaim,
17 ExternalPreparedTokenTransaction, ExternalPreparedTransfer, ExternalSignSparkInvoiceRequest,
18 ExternalSignStaticDepositRefundRequest, ExternalSignedSparkInvoice,
19 ExternalStartStaticDepositRefundRequest, ExternalStartedStaticDepositRefund,
20};
21use super::external_types::{
22 EcdsaSignatureBytes, ExternalFrostSignature, ExternalTreeNodeId, PublicKeyBytes,
23};
24
25#[cfg_attr(
27 feature = "uniffi",
28 uniffi::export(with_foreign, async_runtime = "tokio")
29)]
30#[macros::async_trait]
31pub trait ExternalSparkSigner: Send + Sync {
32 async fn get_identity_public_key(&self) -> Result<PublicKeyBytes, SignerError>;
34
35 async fn get_public_key_for_leaf(
37 &self,
38 leaf_id: ExternalTreeNodeId,
39 ) -> Result<PublicKeyBytes, SignerError>;
40
41 fn is_remote(&self) -> bool {
46 false
47 }
48
49 async fn get_static_deposit_public_key(
51 &self,
52 index: u32,
53 ) -> Result<PublicKeyBytes, SignerError>;
54
55 async fn sign_authentication_challenge(
57 &self,
58 challenge: Vec<u8>,
59 ) -> Result<EcdsaSignatureBytes, SignerError>;
60
61 async fn sign_message(&self, message: Vec<u8>) -> Result<EcdsaSignatureBytes, SignerError>;
63
64 async fn sign_frost(
66 &self,
67 jobs: Vec<ExternalFrostJob>,
68 ) -> Result<Vec<ExternalFrostShareResult>, SignerError>;
69
70 async fn prepare_transfer(
72 &self,
73 request: ExternalPrepareTransferRequest,
74 ) -> Result<ExternalPreparedTransfer, SignerError>;
75
76 async fn prepare_claim(
78 &self,
79 request: ExternalPrepareClaimRequest,
80 ) -> Result<ExternalPreparedClaim, SignerError>;
81
82 async fn prepare_lightning_receive(
84 &self,
85 request: ExternalPrepareLightningReceiveRequest,
86 ) -> Result<ExternalPreparedLightningReceive, SignerError>;
87
88 async fn prepare_static_deposit(
90 &self,
91 request: ExternalPrepareStaticDepositRequest,
92 ) -> Result<ExternalPreparedStaticDeposit, SignerError>;
93
94 async fn start_static_deposit_refund(
96 &self,
97 request: ExternalStartStaticDepositRefundRequest,
98 ) -> Result<ExternalStartedStaticDepositRefund, SignerError>;
99
100 async fn sign_static_deposit_refund(
102 &self,
103 request: ExternalSignStaticDepositRefundRequest,
104 ) -> Result<ExternalFrostSignature, SignerError>;
105
106 async fn sign_spark_invoice(
108 &self,
109 request: ExternalSignSparkInvoiceRequest,
110 ) -> Result<ExternalSignedSparkInvoice, SignerError>;
111
112 async fn prepare_token_transaction(
114 &self,
115 request: ExternalPrepareTokenTransactionRequest,
116 ) -> Result<ExternalPreparedTokenTransaction, SignerError>;
117
118 async fn prepare_static_deposit_claim(
120 &self,
121 request: ExternalPrepareStaticDepositClaimRequest,
122 ) -> Result<ExternalPreparedStaticDepositClaim, SignerError>;
123}