MCPcopy Create free account
hub / github.com/BitVM/BitVM / sign_assertions

Function sign_assertions

bitvm/src/chunk/api.rs:861–890  ·  view source on GitHub ↗
(assn: Assertions)

Source from the content-addressed store, hash-verified

859
860 #[allow(clippy::needless_range_loop)]
861 fn sign_assertions(assn: Assertions) -> Signatures {
862 let (ps, fs, hs) = (assn.0, assn.1, assn.2);
863 let secret = MOCK_SECRET;
864
865 let mut psig: Vec<<Wots32 as Wots>::Signature> = vec![];
866 for i in 0..NUM_PUBS {
867 let secret = format!("{secret}{:04x}", i);
868 let psi = Wots32::sign(&Wots16::secret_from_str(&secret), &ps[i]);
869 psig.push(psi);
870 }
871 let psig: Box<[<Wots32 as Wots>::Signature; NUM_PUBS]> = Box::new(psig.try_into().unwrap());
872
873 let mut fsig: Vec<<Wots32 as Wots>::Signature> = vec![];
874 for i in 0..NUM_U256 {
875 let secret = format!("{secret}{:04x}", NUM_PUBS + i);
876 let fsi = Wots32::sign(&Wots16::secret_from_str(&secret), &fs[i]);
877 fsig.push(fsi);
878 }
879 let fsig: Box<[<Wots32 as Wots>::Signature; NUM_U256]> = Box::new(fsig.try_into().unwrap());
880
881 let mut hsig: Vec<<Wots16 as Wots>::Signature> = vec![];
882 for i in 0..NUM_HASH {
883 let secret = format!("{secret}{:04x}", NUM_PUBS + NUM_U256 + i);
884 let hsi = Wots16::sign(&Wots16::secret_from_str(&secret), &hs[i]);
885 hsig.push(hsi);
886 }
887 let hsig: Box<[<Wots16 as Wots>::Signature; NUM_HASH]> = Box::new(hsig.try_into().unwrap());
888
889 (psig, fsig, hsig)
890 }
891
892 // Step 1: Anyone can Generate Operation (mul & hash) part of tapscript: same for all vks
893 #[test]

Calls 1

pushMethod · 0.45