Skip to main content

psibase/services/
accounts.rs

1#![allow(non_snake_case)]
2
3use crate::AccountNumber;
4use crate::{Pack, ToSchema, Unpack};
5use serde::{Deserialize, Serialize};
6use serde_aux::field_attributes::deserialize_number_from_string;
7
8pub const MIN_ALLOWED_ACCOUNT_LENGTH: u8 = 8;
9// TODO: tables
10#[derive(Debug, Clone, Serialize, Deserialize, Pack, Unpack, ToSchema)]
11#[fracpack(fracpack_mod = "fracpack")]
12pub struct Account {
13    pub accountNum: AccountNumber,
14    pub authService: AccountNumber,
15    #[serde(deserialize_with = "deserialize_number_from_string")]
16    pub authSequence: u64,
17}
18
19#[crate::service(name = "accounts", dispatch = false, psibase_mod = "crate")]
20#[allow(non_snake_case, unused_variables)]
21mod service {
22    use crate::AccountNumber;
23
24    #[action]
25    fn init() {
26        unimplemented!()
27    }
28
29    #[action]
30    fn preapproveAcc(name: AccountNumber) {
31        unimplemented!()
32    }
33
34    #[action]
35    fn newAccount(name: AccountNumber, authService: AccountNumber, requireMatch: bool) -> bool {
36        unimplemented!()
37    }
38
39    #[action]
40    fn setAuthServ(authService: AccountNumber) {
41        unimplemented!()
42    }
43
44    #[action]
45    fn exists(num: AccountNumber) -> bool {
46        unimplemented!()
47    }
48
49    #[action]
50    fn getAccount(num: AccountNumber) -> Option<super::Account> {
51        unimplemented!()
52    }
53
54    #[action]
55    fn getAuthOf(account: AccountNumber) -> AccountNumber {
56        unimplemented!()
57    }
58
59    #[action]
60    fn incAuthSeq(num: AccountNumber) {
61        unimplemented!()
62    }
63}
64
65#[test]
66fn verify_schema() {
67    crate::assert_schema_matches_package::<Wrapper>();
68}