sol_did/
lib.rs

1//! This crate contains the anchor-program code for the did:sol DID method.
2//!
3//! It exposes the public #program instructions, as well as integrations libraries that are
4//! independent of the anchor framework.
5#![allow(clippy::result_large_err)]
6#![warn(
7unused_import_braces,
8unused_imports,
9// missing_docs,
10// missing_debug_implementations,
11// clippy::pedantic
12)]
13
14pub mod constants;
15pub mod errors;
16pub mod integrations;
17pub mod legacy;
18pub mod state;
19pub mod utils;
20
21mod instructions;
22mod security_txt;
23
24use crate::constants::DID_ACCOUNT_SEED;
25use crate::state::DidAccount;
26use anchor_lang::prelude::*;
27use instructions::*;
28use state::{Secp256k1RawSignature, Service, VerificationMethod};
29
30declare_id!("didso1Dpqpm4CsiCjzP766BGY89CAdD6ZBL68cRhFPc");
31
32#[program]
33pub mod sol_did {
34    use super::*;
35
36    pub fn initialize(ctx: Context<Initialize>, size: u32) -> Result<()> {
37        instructions::initialize(ctx, size)
38    }
39
40    pub fn resize(
41        ctx: Context<Resize>,
42        size: u32,
43        eth_signature: Option<Secp256k1RawSignature>,
44    ) -> Result<()> {
45        instructions::resize(ctx, size, eth_signature)
46    }
47
48    pub fn close(ctx: Context<Close>, eth_signature: Option<Secp256k1RawSignature>) -> Result<()> {
49        instructions::close(ctx, eth_signature)
50    }
51
52    pub fn add_verification_method(
53        ctx: Context<AddVerificationMethod>,
54        verification_method: VerificationMethod,
55        eth_signature: Option<Secp256k1RawSignature>,
56    ) -> Result<()> {
57        instructions::add_verification_method(ctx, verification_method, eth_signature)
58    }
59
60    pub fn remove_verification_method(
61        ctx: Context<RemoveVerificationMethod>,
62        fragment: String,
63        eth_signature: Option<Secp256k1RawSignature>,
64    ) -> Result<()> {
65        instructions::remove_verification_method(ctx, fragment, eth_signature)
66    }
67
68    pub fn add_service(
69        ctx: Context<AddService>,
70        service: Service,
71        allow_overwrite: bool,
72        eth_signature: Option<Secp256k1RawSignature>,
73    ) -> Result<()> {
74        instructions::add_service(ctx, service, allow_overwrite, eth_signature)
75    }
76
77    pub fn remove_service(
78        ctx: Context<RemoveService>,
79        fragment: String,
80        eth_signature: Option<Secp256k1RawSignature>,
81    ) -> Result<()> {
82        instructions::remove_service(ctx, fragment, eth_signature)
83    }
84
85    pub fn set_vm_flags(
86        ctx: Context<SetVmFlagsMethod>,
87        flags_vm: UpdateFlagsVerificationMethod,
88        eth_signature: Option<Secp256k1RawSignature>,
89    ) -> Result<()> {
90        instructions::set_vm_flags(ctx, flags_vm, eth_signature)
91    }
92
93    pub fn set_controllers(
94        ctx: Context<SetControllers>,
95        set_controllers_arg: SetControllersArg,
96        eth_signature: Option<Secp256k1RawSignature>,
97    ) -> Result<()> {
98        instructions::set_controllers(ctx, set_controllers_arg, eth_signature)
99    }
100
101    pub fn update(
102        ctx: Context<Update>,
103        update_arg: UpdateArg,
104        eth_signature: Option<Secp256k1RawSignature>,
105    ) -> Result<()> {
106        instructions::update(ctx, update_arg, eth_signature)
107    }
108
109    pub fn migrate(ctx: Context<Migrate>) -> Result<()> {
110        instructions::migrate(ctx)
111    }
112}