pub fn derive_key(&self, customize: impl FnOnce(&mut Transcript)) -> CompressedRistretto {
        let mut t = Transcript::new(b"Keytree.derivation");
        t.commit_bytes(b"pt", self.precompressed_pubkey.as_bytes());
        t.commit_bytes(b"dk", &self.dk);

        // change the derivation path for this key
        customize(&mut t);

        // squeeze a challenge scalar
        let f = t.challenge_scalar(b"f.leaf");
        // TBD: change this to VerificationKey after we factor out Musig (#239)
        //      in order to preserve uncompressed point.
        (self.point + (f * &constants::RISTRETTO_BASEPOINT_POINT)).compress()
    }
/// Returns a leaf Xpub, which can safely be shared.
/// Users must provide customize, in order to separate sibling keys from one another
/// through unique derivation paths.
Returns a leaf Xpub, which can safely be shared.
Users must provide customize, in order to separate sibling keys from one another
through unique derivation paths.
Returns a leaf Xpub which can safely be shared . Users must provide customize in order to separate sibling keys from one another through unique derivation paths .
pub fn derive_key(&self, customize: impl FnOnce(&mut Transcript)) -> CompressedRistretto {
        let mut t = Transcript::new(b"Keytree.derivation");
        t.commit_bytes(b"pt", self.precompressed_pubkey.as_bytes());
        t.commit_bytes(b"dk", &self.dk);
        // change the derivation path for this key
        customize(&mut t);
        // squeeze a challenge scalar
        let f = t.challenge_scalar(b"f.leaf");
        // TBD: change this to VerificationKey after we factor out Musig (#239)
        //      in order to preserve uncompressed point.
        (self.point + (f * &constants::RISTRETTO_BASEPOINT_POINT)).compress()
    }
pub fn derive_key ( & self , customize : impl FnOnce ( & mut Transcript ) ) -> CompressedRistretto { let mut t = Transcript :: new ( b" " ) ; t . commit_bytes ( b" " , self . precompressed_pubkey . as_bytes ( ) ) ; t . commit_bytes ( b" " , & self . dk ) ; // change the derivation path for this key customize ( & mut t ) ; // squeeze a challenge scalar let f = t . challenge_scalar ( b" " ) ; // TBD: change this to VerificationKey after we factor out Musig (#239) //      in order to preserve uncompressed point. ( self . point + ( f * & constants :: RISTRETTO_BASEPOINT_POINT ) ) . compress ( ) }
Returns a leaf Xpub, which can safely be shared.
Returns a leaf Xpub which can safely be shared .
&self
customize
impl FnOnce(&mut Transcript)
&self
customize
impl FnOnce(&mut Transcript)