clockwork_relayer_api/
lib.rs1use serde::{Deserialize, Serialize};
2use solana_sdk::{pubkey::Pubkey, signature::Signature};
3
4#[derive(Deserialize, Serialize)]
5pub struct SignedRequest<T: Sized> {
6 pub msg: T,
7 pub signer: Pubkey,
8 pub signature: Signature,
9}
10
11impl<T: Serialize> SignedRequest<T> {
12 pub fn authenticate(&self) -> bool {
13 let msg_bytes = bincode::serialize(&self.msg).unwrap();
14 self.signature
15 .verify(&self.signer.to_bytes(), msg_bytes.as_slice())
16 }
17}
18
19#[derive(Deserialize, Serialize)]
20pub struct Relay {
21 pub webhook: Pubkey,
22}
23
24#[derive(Deserialize, Serialize)]
25pub struct SecretCreate {
26 pub name: String,
27 pub word: String,
28}
29
30#[derive(Deserialize, Serialize)]
31pub struct SecretGet {
32 pub name: String,
33}
34
35#[derive(Deserialize, Serialize)]
36pub struct SecretList {}
37
38#[derive(Deserialize, Serialize)]
39pub struct SecretListResponse {
40 pub secrets: Vec<String>,
41}
42
43#[derive(Deserialize, Serialize)]
44pub struct SecretApprove {
45 pub name: String,
46 pub delegate: Pubkey,
47}
48
49#[derive(Deserialize, Serialize)]
50pub struct SecretRevoke {
51 pub name: String,
52 pub delegate: Pubkey,
53}