v0.4.8-pre.013
This commit is contained in:
@@ -1,8 +1,13 @@
|
||||
<!-- file: kb-wallet/CHANGELOG.md -->
|
||||
<!-- version: 3 -->
|
||||
<!-- version: 4 -->
|
||||
|
||||
# CHANGELOG — kb-wallet
|
||||
|
||||
## `0.4.8-pre.013`
|
||||
|
||||
- `pre.013-delta-fix-021` ajoute `TemporaryWallet::as_sync_signer()` afin de préserver le marqueur `Sync` du `solana_keypair::Keypair` lorsque le signataire traverse un futur async qui doit être `Send` ;
|
||||
- conserve `as_signer()` inchangé pour les consommateurs historiques et n’expose toujours aucun octet secret.
|
||||
|
||||
## 0.4.6
|
||||
|
||||
- alignement de la crate sur la version fonctionnelle bot3 `0.4.6` ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: kb-wallet/USAGE.md -->
|
||||
<!-- version: 1 -->
|
||||
<!-- version: 2 -->
|
||||
|
||||
# Utilisation de kb-wallet
|
||||
|
||||
@@ -61,6 +61,8 @@ println!("signature={signature}");
|
||||
|
||||
`as_signer()` retourne une référence au trait Solana `Signer` sans exposer les octets du keypair.
|
||||
|
||||
Pour une API async qui conserve la référence au travers d’un `await` et impose un futur `Send`, `as_sync_signer()` préserve explicitement le marqueur `Sync` du keypair concret. Cette vue ne change ni la clé utilisée ni les règles d’autorisation de la couche d’exécution.
|
||||
|
||||
## Créer un stockage local
|
||||
|
||||
```rust
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: kb-wallet/src/wallet.rs
|
||||
// version: 8
|
||||
// version: 9
|
||||
|
||||
//! Local wallet storage and signing primitives.
|
||||
|
||||
@@ -104,6 +104,11 @@ impl crate::TemporaryWallet {
|
||||
return &self.keypair;
|
||||
}
|
||||
|
||||
/// Returns the signer interface with the `Sync` auto-trait preserved for `Send` async futures.
|
||||
pub fn as_sync_signer(&self) -> &(dyn solana_signer::Signer + std::marker::Sync) {
|
||||
return &self.keypair;
|
||||
}
|
||||
|
||||
/// Signs arbitrary message bytes and returns the base58 signature.
|
||||
pub fn sign_message(&self, message: &[u8]) -> kb_core::Result<std::string::String> {
|
||||
let signature = match self.keypair.try_sign_message(message) {
|
||||
@@ -437,6 +442,7 @@ mod tests {
|
||||
.unwrap_or_else(|error| panic!("unexpected signing error: {error}"));
|
||||
assert!(!signature.is_empty());
|
||||
assert_eq!(wallet.public_key(), wallet.as_signer().pubkey().to_string());
|
||||
assert_eq!(wallet.public_key(), wallet.as_sync_signer().pubkey().to_string());
|
||||
assert!(wallet.summary().storage_path.is_none());
|
||||
assert!(!format!("{wallet:?}").contains("secret"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user