Skip to content

Commit 2f9f0d9

Browse files
authored
feat: more small messenger-server improvements (#257)
* feat(common): transaction errors can be used as std::error::Error * refactor(common): PendingTransaction uses a lifetime This connects the lifetime of the pending transaction to the lifetime of the prism client reference it contains. * feat(client): expose CryptoAlgorithm * feat(keys): use compressed representation when serializing verifying keys * chore: incorporate changes in zkvm elf
1 parent f32e3f7 commit 2f9f0d9

File tree

8 files changed

+17
-18
lines changed

8 files changed

+17
-18
lines changed

crates/client/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub use prism_common::{
1010
operation::{ServiceChallenge, ServiceChallengeInput, SignatureBundle},
1111
transaction::{Transaction, TransactionError, UnsignedTransaction},
1212
};
13-
pub use prism_keys::{Signature, SigningKey, VerifyingKey};
13+
pub use prism_keys::{CryptoAlgorithm, Signature, SigningKey, VerifyingKey};
1414
pub use prism_serde::binary;
1515

1616
#[cfg(feature = "mockall")]

crates/common/src/api/mock.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ impl MockPrismPendingTransaction {
2626
}
2727

2828
#[async_trait]
29-
impl PendingTransaction for MockPrismPendingTransaction {
29+
impl PendingTransaction<'_> for MockPrismPendingTransaction {
3030
type Timer = MockPrismTimer;
3131

3232
async fn wait_with_interval(&self, _: Duration) -> Result<Account, PrismApiError> {

crates/common/src/api/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ pub trait PrismApiTimer {
184184
const DEFAULT_POLLING_INTERVAL: Duration = Duration::from_secs(5);
185185

186186
#[async_trait]
187-
pub trait PendingTransaction
187+
pub trait PendingTransaction<'a>
188188
where
189189
Self: Send + Sync,
190190
{
@@ -215,7 +215,7 @@ where
215215
}
216216

217217
#[async_trait]
218-
impl<P> PendingTransaction for PendingTransactionImpl<'_, P>
218+
impl<'a, P> PendingTransaction<'a> for PendingTransactionImpl<'a, P>
219219
where
220220
P: PrismApi,
221221
{

crates/common/src/api/noop.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ impl PrismApiTimer for NoopTimer {
1616
pub struct NoopPendingTransaction;
1717

1818
#[async_trait]
19-
impl PendingTransaction for NoopPendingTransaction {
19+
impl PendingTransaction<'_> for NoopPendingTransaction {
2020
type Timer = NoopTimer;
2121

2222
async fn wait_with_interval(&self, _: Duration) -> Result<Account, PrismApiError> {

crates/common/src/builder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ where
367367

368368
pub async fn send(
369369
self,
370-
) -> Result<impl PendingTransaction<Timer = P::Timer> + 'a, PrismApiError> {
370+
) -> Result<impl PendingTransaction<'a, Timer = P::Timer>, PrismApiError> {
371371
let Some(prism) = self.prism else {
372372
return Err(TransactionError::MissingSender.into());
373373
};

crates/common/src/transaction.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
use std::fmt::{Display, Formatter};
1+
use std::{
2+
error::Error,
3+
fmt::{Display, Formatter},
4+
};
25

3-
use anyhow::{anyhow, Result};
6+
use anyhow::Result;
47
use celestia_types::Blob;
58
use prism_keys::{Signature, SigningKey, VerifyingKey};
69
use prism_serde::binary::{FromBinary, ToBinary};
@@ -118,8 +121,4 @@ impl Display for TransactionError {
118121
}
119122
}
120123

121-
impl From<TransactionError> for anyhow::Error {
122-
fn from(error: TransactionError) -> Self {
123-
anyhow!(error.to_string())
124-
}
125-
}
124+
impl Error for TransactionError {}

crates/keys/src/verifying_keys.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@ impl VerifyingKey {
7676
/// Returns the byte representation of the public key.
7777
pub fn to_bytes(&self) -> Vec<u8> {
7878
match self {
79-
VerifyingKey::Ed25519(vk) => vk.to_bytes().to_vec(),
80-
VerifyingKey::Secp256k1(vk) => vk.to_sec1_bytes().to_vec(),
81-
VerifyingKey::Secp256r1(vk) => vk.to_sec1_bytes().to_vec(),
82-
VerifyingKey::Eip191(vk) => vk.to_sec1_bytes().to_vec(),
83-
VerifyingKey::CosmosAdr36(vk) => vk.to_sec1_bytes().to_vec(),
79+
VerifyingKey::Ed25519(vk) => vk.as_bytes().to_vec(),
80+
VerifyingKey::Secp256k1(vk) => vk.to_encoded_point(true).as_bytes().to_vec(),
81+
VerifyingKey::Secp256r1(vk) => vk.to_encoded_point(true).as_bytes().to_vec(),
82+
VerifyingKey::Eip191(vk) => vk.to_encoded_point(true).as_bytes().to_vec(),
83+
VerifyingKey::CosmosAdr36(vk) => vk.to_encoded_point(true).as_bytes().to_vec(),
8484
}
8585
}
8686

elf/riscv32im-succinct-zkvm-elf

28.3 KB
Binary file not shown.

0 commit comments

Comments
 (0)