1#![allow(clippy::result_large_err)]
6#![warn(
7unused_import_braces,
8unused_imports,
9)]
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}