From 3b8ed0bb38449b3fc9f180ccfd25675bcc6712c9 Mon Sep 17 00:00:00 2001 From: Doug Anderson444 Date: Fri, 19 Dec 2025 14:45:07 -0400 Subject: [PATCH 1/3] borrow the config --- crates/bs-peer/src/peer.rs | 2 +- crates/bs/src/better_sign.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/bs-peer/src/peer.rs b/crates/bs-peer/src/peer.rs index b4461fc..7f8313b 100644 --- a/crates/bs-peer/src/peer.rs +++ b/crates/bs-peer/src/peer.rs @@ -287,7 +287,7 @@ where // Create BetterSign instance (no lock held) let bs = BetterSign::new( - config.clone(), + &config, self.key_provider.clone(), self.key_provider.clone(), ) diff --git a/crates/bs/src/better_sign.rs b/crates/bs/src/better_sign.rs index 2358c04..8404fb4 100644 --- a/crates/bs/src/better_sign.rs +++ b/crates/bs/src/better_sign.rs @@ -73,8 +73,8 @@ where S: MultiSigner, { /// Create a new BetterSign instance with the given configuration. - pub async fn new(config: open::Config, mut key_manager: KM, signer: S) -> Result { - let plog = open::open_plog_core(&config, &mut key_manager, &signer).await?; + pub async fn new(config: &open::Config, mut key_manager: KM, signer: S) -> Result { + let plog = open::open_plog_core(config, &mut key_manager, &signer).await?; Ok(Self { plog, key_manager, @@ -110,7 +110,7 @@ where /// # Errors /// /// Returns an error if the provenance log creation fails. - pub fn new_sync(config: open::Config, key_manager: KM, signer: S) -> Result { + pub fn new_sync(config: &open::Config, key_manager: KM, signer: S) -> Result { futures::executor::block_on(Self::new(config, key_manager, signer)) } From 29ba7aeb630a079c1fad04b71d8fd5a535ae45be Mon Sep 17 00:00:00 2001 From: Doug Anderson444 Date: Sun, 21 Dec 2025 08:57:16 -0400 Subject: [PATCH 2/3] clarify method names --- cli/src/subcmds/plog.rs | 2 +- crates/bs-peer/src/peer.rs | 2 +- crates/bs-peer/src/utils.rs | 4 ++-- crates/bs/src/better_sign.rs | 6 +++--- crates/bs/src/ops/open.rs | 4 ++-- crates/bs/src/ops/open/config.rs | 31 +++++++++++++++++++------------ crates/bs/src/ops/update.rs | 2 +- 7 files changed, 29 insertions(+), 22 deletions(-) diff --git a/cli/src/subcmds/plog.rs b/cli/src/subcmds/plog.rs index 5fc66ab..3478995 100644 --- a/cli/src/subcmds/plog.rs +++ b/cli/src/subcmds/plog.rs @@ -193,7 +193,7 @@ pub async fn go(cmd: Command, _config: &Config) -> Result<(), Error> { .hash(vlad_cid_hash) .build(), ) - .entrykey(parse_key_params(&entry_key_codec, Some("/entrykey"))?) + .first_entry_params(parse_key_params(&entry_key_codec, Some("/entrykey"))?) .unlock(unlock_script) .lock(lock_script.clone()) .additional_ops(additional_ops) // Add all operations at once diff --git a/crates/bs-peer/src/peer.rs b/crates/bs-peer/src/peer.rs index 7f8313b..a8115de 100644 --- a/crates/bs-peer/src/peer.rs +++ b/crates/bs-peer/src/peer.rs @@ -341,7 +341,7 @@ where .build() .into(), ) - .entrykey( + .first_entry_params( FirstEntryKeyParams::builder() .codec(Codec::Ed25519Priv) .build() diff --git a/crates/bs-peer/src/utils.rs b/crates/bs-peer/src/utils.rs index 46df08b..a1f0c9c 100644 --- a/crates/bs-peer/src/utils.rs +++ b/crates/bs-peer/src/utils.rs @@ -277,7 +277,7 @@ pub async fn run_in_memory_blockstore_test() { .build() .into(), ) - .entrykey( + .first_entry_params( FirstEntryKeyParams::builder() .codec(Codec::Ed25519Priv) .build() @@ -376,7 +376,7 @@ pub async fn run_network_blockstore_test() { .build() .into(), ) - .entrykey( + .first_entry_params( FirstEntryKeyParams::builder() .codec(Codec::Ed25519Priv) .build() diff --git a/crates/bs/src/better_sign.rs b/crates/bs/src/better_sign.rs index 8404fb4..2422af5 100644 --- a/crates/bs/src/better_sign.rs +++ b/crates/bs/src/better_sign.rs @@ -146,7 +146,7 @@ mod tests { .build() .into(), ) - .entrykey( + .first_entry_params( FirstEntryKeyParams::builder() .codec(Codec::Ed25519Priv) .build() @@ -184,7 +184,7 @@ mod tests { .build() .into(), ) - .entrykey( + .first_entry_params( FirstEntryKeyParams::builder() .codec(Codec::Ed25519Priv) .build() @@ -239,7 +239,7 @@ mod tests { .build() .into(), ) - .entrykey( + .first_entry_params( FirstEntryKeyParams::builder() .codec(Codec::Ed25519Priv) .build() diff --git a/crates/bs/src/ops/open.rs b/crates/bs/src/ops/open.rs index 89438fb..952d9b6 100644 --- a/crates/bs/src/ops/open.rs +++ b/crates/bs/src/ops/open.rs @@ -129,7 +129,7 @@ where key_manager.preprocess_vlad(&vlad).await?; // 2. Extract entry key parameters and prepare signing - let entrykey_params = &config.entrykey(); + let entrykey_params = &config.first_entry(); let (codec, threshold, limit) = extract_key_params::(entrykey_params)?; // Get the public key and signing function @@ -430,7 +430,7 @@ mod tests { let config = Config::builder() // Uses default type parameter FirstEntryKeyParams .vlad(vlad_params) .pubkey(pubkey_params.into()) - .entrykey(entry_key_params.into()) + .first_entry_params(entry_key_params.into()) .lock(Script::Code(Key::default(), lock)) .unlock(Script::Code(Key::default(), unlock)) .build(); diff --git a/crates/bs/src/ops/open/config.rs b/crates/bs/src/ops/open/config.rs index 07e6b45..57c2b3d 100644 --- a/crates/bs/src/ops/open/config.rs +++ b/crates/bs/src/ops/open/config.rs @@ -14,8 +14,8 @@ pub struct Config { /// the vlad key and cid params vlad: VladParams, - /// the entry key params - entrykey: OpParams, + /// First entry [OpParams] + first_entry_params: OpParams, /// the pubkey params pubkey: OpParams, @@ -46,9 +46,11 @@ impl Config { &self.first_lock } - /// Get the entry key params - pub fn entrykey(&self) -> &OpParams { - &self.entrykey + /// Get the (first) entry key params + /// + /// Because this is the Open Config, this will always be the first entry + pub fn first_entry(&self) -> &OpParams { + &self.first_entry_params } /// Get the pubkey params @@ -87,7 +89,12 @@ impl From> for Vec { // Gather all the operations from this config so we can store their values against their Cids let (vlad_key_op, vlad_cid_op): (OpParams, OpParams) = config.vlad.into(); - let mut ops = vec![vlad_key_op, vlad_cid_op, config.entrykey, config.pubkey]; + let mut ops = vec![ + vlad_key_op, + vlad_cid_op, + config.first_entry_params, + config.pubkey, + ]; ops.extend(config.additional_ops); ops } @@ -107,7 +114,7 @@ mod tests { // Create a Config with default type parameter (FirstEntryKeyParams) let config = Config::builder() .vlad(Default::default()) - .entrykey(Default::default()) + .first_entry_params(Default::default()) .pubkey(Default::default()) .lock(Script::Code(Key::default(), "test lock".to_string())) .unlock(Script::Code(Key::default(), "test unlock".to_string())) @@ -126,7 +133,7 @@ mod tests { fn test_config_with_recovery_key_params() { let config: Config = Config::::builder() .vlad(VladParams::::builder().build()) - .entrykey(Default::default()) + .first_entry_params(Default::default()) .pubkey(Default::default()) .lock(Script::Code(Key::default(), "test lock".to_string())) .unlock(Script::Code(Key::default(), "test unlock".to_string())) @@ -150,7 +157,7 @@ mod tests { // Create Config and set VladParams let config = Config::::builder() .vlad(Default::default()) - .entrykey(Default::default()) + .first_entry_params(Default::default()) .pubkey(Default::default()) .lock(Script::Code(Key::default(), "test lock".to_string())) .unlock(Script::Code(Key::default(), "test unlock".to_string())) @@ -177,7 +184,7 @@ mod tests { // Create a Config let config = Config::builder() .vlad(Default::default()) - .entrykey(Default::default()) + .first_entry_params(Default::default()) .pubkey(Default::default()) .lock(Script::Code(Key::default(), "test lock".to_string())) .unlock(Script::Code(Key::default(), "test unlock".to_string())) @@ -199,7 +206,7 @@ mod tests { // Create a Config let config = Config::builder() .vlad(Default::default()) - .entrykey(Default::default()) + .first_entry_params(Default::default()) .pubkey(Default::default()) .lock(Script::Code(Key::default(), "test lock".to_string())) .unlock(Script::Code(Key::default(), "test unlock".to_string())) @@ -219,7 +226,7 @@ mod tests { // This would be a compile error if we tried to use the wrong type let config = Config::::builder() .vlad(vlad_params) - .entrykey(Default::default()) + .first_entry_params(Default::default()) .pubkey(Default::default()) .lock(Script::Code(Key::default(), "test lock".to_string())) .unlock(Script::Code(Key::default(), "test unlock".to_string())) diff --git a/crates/bs/src/ops/update.rs b/crates/bs/src/ops/update.rs index 0f12f88..eafe53f 100644 --- a/crates/bs/src/ops/update.rs +++ b/crates/bs/src/ops/update.rs @@ -399,7 +399,7 @@ mod tests { let open_config = open::Config::builder() .vlad(VladParams::::default()) .pubkey(pubkey_params.clone().into()) - .entrykey( + .first_entry_params( FirstEntryKeyParams::builder() .codec(Codec::Ed25519Priv) .build() From c4de5b6975a886f95aaf902ec0beb74a8f5ebc04 Mon Sep 17 00:00:00 2001 From: Doug Anderson444 Date: Tue, 23 Dec 2025 08:39:00 -0400 Subject: [PATCH 3/3] fix api --- crates/bs/src/better_sign.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/bs/src/better_sign.rs b/crates/bs/src/better_sign.rs index 2422af5..e048e45 100644 --- a/crates/bs/src/better_sign.rs +++ b/crates/bs/src/better_sign.rs @@ -165,7 +165,7 @@ mod tests { let key_manager = InMemoryKeyManager::::default(); let signer = key_manager.clone(); - let bs = BetterSign::new(config, key_manager, signer) + let bs = BetterSign::new(&config, key_manager, signer) .await .expect("Failed to create BetterSign"); @@ -203,7 +203,7 @@ mod tests { let key_manager = InMemoryKeyManager::::default(); let signer = key_manager.clone(); - let mut bs = BetterSign::new(open_config, key_manager, signer) + let mut bs = BetterSign::new(&open_config, key_manager, signer) .await .expect("Failed to create BetterSign"); @@ -258,8 +258,8 @@ mod tests { let key_manager = InMemoryKeyManager::::default(); let signer = key_manager.clone(); - let bs = - BetterSign::new_sync(config, key_manager, signer).expect("Failed to create BetterSign"); + let bs = BetterSign::new_sync(&config, key_manager, signer) + .expect("Failed to create BetterSign"); // Verify the plog was created assert!(!bs.plog().entries.is_empty());