Move additional_key.rs to serai-processor-view-keys

I don't love this. I wanted to simply add this function to `processor/key-gen`,
but then anyone who wants a view key needs to pull in Bulletproofs which is a
mess of code. They'd also be subject to an AGPL licensed library.

This is so small it should be a primitive elsewhere, yet there is no primitives
library eligible. Maybe serai-client since that has the code to make
transactions to Serai (and will have this as a dependency)? Except then the
processor has to import serai-client when this rewrite removed it as a
dependency.
This commit is contained in:
Luke Parker
2024-09-04 17:29:48 -04:00
parent 2da24506a2
commit d570c1d277
11 changed files with 69 additions and 36 deletions

View File

@@ -1,14 +0,0 @@
use ciphersuite::Ciphersuite;
use crate::networks::Network;
// Generate a static additional key for a given chain in a globally consistent manner
// Doesn't consider the current group key to increase the simplicity of verifying Serai's status
// Takes an index, k, to support protocols which use multiple secondary keys
// Presumably a view key
pub fn additional_key<N: Network>(k: u64) -> <N::Curve as Ciphersuite>::F {
<N::Curve as Ciphersuite>::hash_to_F(
b"Serai DEX Additional Key",
&[N::ID.as_bytes(), &k.to_le_bytes()].concat(),
)
}

View File

@@ -1,15 +0,0 @@
#![allow(dead_code)]
mod plan;
pub use plan::*;
mod db;
pub(crate) use db::*;
use serai_processor_key_gen as key_gen;
pub mod networks;
pub(crate) mod multisigs;
mod additional_key;
pub use additional_key::additional_key;

View File

@@ -27,9 +27,6 @@ use serai_env as env;
use message_queue::{Service, client::MessageQueue};
mod plan;
pub use plan::*;
mod networks;
use networks::{Block, Network};
#[cfg(feature = "bitcoin")]
@@ -39,9 +36,6 @@ use networks::Ethereum;
#[cfg(feature = "monero")]
use networks::Monero;
mod additional_key;
pub use additional_key::additional_key;
mod db;
pub use db::*;

View File

@@ -4,5 +4,5 @@ pub enum MultisigEvent<N: Network> {
// Batches to publish
Batches(Option<(<N::Curve as Ciphersuite>::G, <N::Curve as Ciphersuite>::G)>, Vec<Batch>),
// Eventuality completion found on-chain
Completed(Vec<u8>, [u8; 32], <N::Eventu
Completed(Vec<u8>, [u8; 32], N::Eventuality),
}