accumulate_client/generated/
enums.rs

1// GENERATED FILE - DO NOT EDIT
2// Source: protocol/enums.yml | Generated: 2025-10-03 19:49:45
3
4use serde::{Serialize, Deserialize};
5
6#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
7pub enum AccountAuthOperationType {
8    #[serde(rename = "unknown")]
9    Unknown,
10    #[serde(rename = "enable")]
11    Enable,
12    #[serde(rename = "disable")]
13    Disable,
14    #[serde(rename = "addauthority")]
15    AddAuthority,
16    #[serde(rename = "removeauthority")]
17    RemoveAuthority,
18}
19
20#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
21pub enum AccountType {
22    #[serde(rename = "unknown")]
23    Unknown,
24    #[serde(rename = "anchorLedger", alias = "anchorledger")]
25    AnchorLedger,
26    #[serde(rename = "identity")]
27    Identity,
28    #[serde(rename = "tokenIssuer")]
29    TokenIssuer,
30    #[serde(rename = "tokenAccount", alias = "tokenaccount")]
31    TokenAccount,
32    #[serde(rename = "liteTokenAccount", alias = "litetokenaccount")]
33    LiteTokenAccount,
34    #[serde(rename = "blockLedger")]
35    BlockLedger,
36    #[serde(rename = "keyPage")]
37    KeyPage,
38    #[serde(rename = "keyBook")]
39    KeyBook,
40    #[serde(rename = "dataAccount", alias = "dataaccount")]
41    DataAccount,
42    #[serde(rename = "liteDataAccount")]
43    LiteDataAccount,
44    #[serde(rename = "unknownSigner")]
45    UnknownSigner,
46    #[serde(rename = "systemLedger")]
47    SystemLedger,
48    #[serde(rename = "liteIdentity")]
49    LiteIdentity,
50    #[serde(rename = "syntheticLedger")]
51    SyntheticLedger,
52}
53
54#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
55pub enum AllowedTransactionBit {
56    #[serde(rename = "updatekeypage")]
57    UpdateKeyPage,
58    #[serde(rename = "updateaccountauth")]
59    UpdateAccountAuth,
60}
61
62#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
63pub enum BookType {
64    #[serde(rename = "normal")]
65    Normal,
66    #[serde(rename = "validator")]
67    Validator,
68    #[serde(rename = "operator")]
69    Operator,
70}
71
72#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
73pub enum DataEntryType {
74    #[serde(rename = "unknown")]
75    Unknown,
76    #[serde(rename = "factom")]
77    Factom,
78    #[serde(rename = "accumulate")]
79    Accumulate,
80    #[serde(rename = "doublehash")]
81    DoubleHash,
82}
83
84#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
85pub enum ExecutorVersion {
86    #[serde(rename = "v1")]
87    V1,
88    #[serde(rename = "v1SignatureAnchoring", alias = "v1-signatureAnchoring")]
89    V1SignatureAnchoring,
90    #[serde(rename = "v1DoubleHashEntries", alias = "v1-doubleHashEntries")]
91    V1DoubleHashEntries,
92    #[serde(rename = "v1Halt", alias = "v1-halt")]
93    V1Halt,
94    #[serde(rename = "v2")]
95    V2,
96    #[serde(rename = "v2Baikonur", alias = "v2-baikonur")]
97    V2Baikonur,
98    #[serde(rename = "v2Vandenberg", alias = "v2-vandenberg")]
99    V2Vandenberg,
100    #[serde(rename = "v2Jiuquan", alias = "v2-jiuquan")]
101    V2Jiuquan,
102    #[serde(rename = "vNext", alias = "vnext")]
103    VNext,
104}
105
106#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
107pub enum KeyPageOperationType {
108    #[serde(rename = "unknown")]
109    Unknown,
110    #[serde(rename = "update")]
111    Update,
112    #[serde(rename = "remove")]
113    Remove,
114    #[serde(rename = "add")]
115    Add,
116    #[serde(rename = "setthreshold")]
117    SetThreshold,
118    #[serde(rename = "updateallowed")]
119    UpdateAllowed,
120    #[serde(rename = "setrejectthreshold")]
121    SetRejectThreshold,
122    #[serde(rename = "setresponsethreshold")]
123    SetResponseThreshold,
124}
125
126#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
127pub enum NetworkMaintenanceOperationType {
128    #[serde(rename = "unknown")]
129    Unknown,
130    #[serde(rename = "pendingtransactiongc")]
131    PendingTransactionGC,
132}
133
134#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
135pub enum ObjectType {
136    #[serde(rename = "unknown")]
137    Unknown,
138    #[serde(rename = "account")]
139    Account,
140    #[serde(rename = "transaction")]
141    Transaction,
142}
143
144#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
145pub enum PartitionType {
146    #[serde(rename = "directory")]
147    Directory,
148    #[serde(rename = "blockValidator", alias = "block-validator")]
149    BlockValidator,
150    #[serde(rename = "blockSummary", alias = "block-summary")]
151    BlockSummary,
152    #[serde(rename = "bootstrap")]
153    Bootstrap,
154}
155
156#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
157pub enum SignatureType {
158    #[serde(rename = "unknown")]
159    Unknown,
160    #[serde(rename = "legacyED25519")]
161    LegacyED25519,
162    #[serde(rename = "ed25519")]
163    ED25519,
164    #[serde(rename = "rcd1")]
165    RCD1,
166    #[serde(rename = "receipt")]
167    Receipt,
168    #[serde(rename = "synthetic")]
169    Partition,
170    #[serde(rename = "set")]
171    Set,
172    #[serde(rename = "remote")]
173    Remote,
174    #[serde(rename = "btc")]
175    BTC,
176    #[serde(rename = "btclegacy")]
177    BTCLegacy,
178    #[serde(rename = "eth")]
179    ETH,
180    #[serde(rename = "delegated")]
181    Delegated,
182    #[serde(rename = "internal")]
183    Internal,
184    #[serde(rename = "authority")]
185    Authority,
186    #[serde(rename = "rsasha256")]
187    RsaSha256,
188    #[serde(rename = "ecdsasha256")]
189    EcdsaSha256,
190    #[serde(rename = "typeddata")]
191    TypedData,
192}
193
194#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
195pub enum TransactionMax {
196    #[serde(rename = "user")]
197    User,
198    #[serde(rename = "synthetic")]
199    Synthetic,
200    #[serde(rename = "system")]
201    System,
202}
203
204#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
205pub enum TransactionType {
206    #[serde(rename = "unknown")]
207    Unknown,
208    #[serde(rename = "createIdentity")]
209    CreateIdentity,
210    #[serde(rename = "createTokenAccount")]
211    CreateTokenAccount,
212    #[serde(rename = "sendTokens")]
213    SendTokens,
214    #[serde(rename = "createDataAccount")]
215    CreateDataAccount,
216    #[serde(rename = "writeData")]
217    WriteData,
218    #[serde(rename = "writeDataTo")]
219    WriteDataTo,
220    #[serde(rename = "acmeFaucet")]
221    AcmeFaucet,
222    #[serde(rename = "createToken")]
223    CreateToken,
224    #[serde(rename = "issueTokens")]
225    IssueTokens,
226    #[serde(rename = "burnTokens")]
227    BurnTokens,
228    #[serde(rename = "createLiteTokenAccount")]
229    CreateLiteTokenAccount,
230    #[serde(rename = "createKeyPage")]
231    CreateKeyPage,
232    #[serde(rename = "createKeyBook")]
233    CreateKeyBook,
234    #[serde(rename = "addCredits")]
235    AddCredits,
236    #[serde(rename = "updateKeyPage")]
237    UpdateKeyPage,
238    #[serde(rename = "lockAccount")]
239    LockAccount,
240    #[serde(rename = "burnCredits")]
241    BurnCredits,
242    #[serde(rename = "transferCredits")]
243    TransferCredits,
244    #[serde(rename = "updateAccountAuth")]
245    UpdateAccountAuth,
246    #[serde(rename = "updateKey")]
247    UpdateKey,
248    #[serde(rename = "networkMaintenance")]
249    NetworkMaintenance,
250    #[serde(rename = "activateProtocolVersion")]
251    ActivateProtocolVersion,
252    #[serde(rename = "signPending")]
253    Remote,
254    #[serde(rename = "syntheticCreateIdentity")]
255    SyntheticCreateIdentity,
256    #[serde(rename = "syntheticWriteData")]
257    SyntheticWriteData,
258    #[serde(rename = "syntheticDepositTokens")]
259    SyntheticDepositTokens,
260    #[serde(rename = "syntheticDepositCredits")]
261    SyntheticDepositCredits,
262    #[serde(rename = "syntheticBurnTokens")]
263    SyntheticBurnTokens,
264    #[serde(rename = "syntheticForwardTransaction")]
265    SyntheticForwardTransaction,
266    #[serde(rename = "systemGenesis")]
267    SystemGenesis,
268    #[serde(rename = "directoryAnchor")]
269    DirectoryAnchor,
270    #[serde(rename = "blockValidatorAnchor")]
271    BlockValidatorAnchor,
272    #[serde(rename = "systemWriteData")]
273    SystemWriteData,
274}
275
276#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
277pub enum VoteType {
278    #[serde(rename = "accept")]
279    Accept,
280    #[serde(rename = "reject")]
281    Reject,
282    #[serde(rename = "abstain")]
283    Abstain,
284    #[serde(rename = "suggest")]
285    Suggest,
286}
287
288impl VoteType {
289    /// Get the numeric value of the vote type (matches Go protocol)
290    pub fn value(&self) -> u64 {
291        match self {
292            VoteType::Accept => 0,
293            VoteType::Reject => 1,
294            VoteType::Abstain => 2,
295            VoteType::Suggest => 3,
296        }
297    }
298
299    /// Create a VoteType from its numeric value
300    pub fn from_u64(value: u64) -> Option<Self> {
301        match value {
302            0 => Some(VoteType::Accept),
303            1 => Some(VoteType::Reject),
304            2 => Some(VoteType::Abstain),
305            3 => Some(VoteType::Suggest),
306            _ => None,
307        }
308    }
309
310    /// Get all possible vote types
311    pub fn all() -> &'static [VoteType] {
312        &[VoteType::Accept, VoteType::Reject, VoteType::Abstain, VoteType::Suggest]
313    }
314
315    /// Check if this vote type approves (accepts) the proposal
316    pub fn is_approval(&self) -> bool {
317        matches!(self, VoteType::Accept)
318    }
319
320    /// Check if this vote type rejects the proposal
321    pub fn is_rejection(&self) -> bool {
322        matches!(self, VoteType::Reject)
323    }
324
325    /// Check if this vote type is an abstention
326    pub fn is_abstention(&self) -> bool {
327        matches!(self, VoteType::Abstain)
328    }
329
330    /// Check if this vote type is a suggestion (proposal)
331    pub fn is_suggestion(&self) -> bool {
332        matches!(self, VoteType::Suggest)
333    }
334
335    /// Get string representation matching Go protocol
336    pub fn as_str(&self) -> &'static str {
337        match self {
338            VoteType::Accept => "accept",
339            VoteType::Reject => "reject",
340            VoteType::Abstain => "abstain",
341            VoteType::Suggest => "suggest",
342        }
343    }
344
345    /// Parse from string (case-insensitive)
346    pub fn from_str_case_insensitive(s: &str) -> Option<Self> {
347        match s.to_lowercase().as_str() {
348            "accept" => Some(VoteType::Accept),
349            "reject" => Some(VoteType::Reject),
350            "abstain" => Some(VoteType::Abstain),
351            "suggest" => Some(VoteType::Suggest),
352            _ => None,
353        }
354    }
355}
356
357impl Default for VoteType {
358    /// Default vote type is Accept (matches Go protocol)
359    fn default() -> Self {
360        VoteType::Accept
361    }
362}
363
364impl std::fmt::Display for VoteType {
365    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
366        write!(f, "{}", self.as_str())
367    }
368}
369
370/// Vote tallying result for counting signature votes
371#[derive(Debug, Clone, Default, PartialEq, Eq)]
372pub struct VoteTally {
373    /// Number of accept votes
374    pub accept: u64,
375    /// Number of reject votes
376    pub reject: u64,
377    /// Number of abstain votes
378    pub abstain: u64,
379    /// Number of suggest votes
380    pub suggest: u64,
381}
382
383impl VoteTally {
384    /// Create an empty tally
385    pub fn new() -> Self {
386        Self::default()
387    }
388
389    /// Add a vote to the tally
390    pub fn add_vote(&mut self, vote: VoteType) {
391        match vote {
392            VoteType::Accept => self.accept += 1,
393            VoteType::Reject => self.reject += 1,
394            VoteType::Abstain => self.abstain += 1,
395            VoteType::Suggest => self.suggest += 1,
396        }
397    }
398
399    /// Add multiple votes of the same type
400    pub fn add_votes(&mut self, vote: VoteType, count: u64) {
401        match vote {
402            VoteType::Accept => self.accept += count,
403            VoteType::Reject => self.reject += count,
404            VoteType::Abstain => self.abstain += count,
405            VoteType::Suggest => self.suggest += count,
406        }
407    }
408
409    /// Get the total number of votes (excluding abstentions)
410    pub fn total_active(&self) -> u64 {
411        self.accept + self.reject + self.suggest
412    }
413
414    /// Get the total number of all votes (including abstentions)
415    pub fn total(&self) -> u64 {
416        self.accept + self.reject + self.abstain + self.suggest
417    }
418
419    /// Check if the vote passes with simple majority (more accepts than rejects)
420    pub fn passes_simple_majority(&self) -> bool {
421        self.accept > self.reject
422    }
423
424    /// Check if the vote passes with strict majority (>50% accepts of active votes)
425    pub fn passes_strict_majority(&self) -> bool {
426        let total_active = self.total_active();
427        if total_active == 0 {
428            return false;
429        }
430        self.accept > total_active / 2
431    }
432
433    /// Check if the vote passes with supermajority (>=2/3 accepts of active votes)
434    pub fn passes_supermajority(&self) -> bool {
435        let total_active = self.total_active();
436        if total_active == 0 {
437            return false;
438        }
439        // Using >= 2/3 threshold: accept * 3 >= total * 2
440        self.accept * 3 >= total_active * 2
441    }
442
443    /// Check if the vote passes with given threshold (accepts as percentage of active votes)
444    pub fn passes_threshold(&self, threshold_percent: u64) -> bool {
445        if threshold_percent > 100 {
446            return false;
447        }
448        let total_active = self.total_active();
449        if total_active == 0 {
450            return threshold_percent == 0;
451        }
452        // accept * 100 >= total * threshold
453        self.accept * 100 >= total_active * threshold_percent
454    }
455
456    /// Get the acceptance percentage (of active votes)
457    pub fn acceptance_percentage(&self) -> f64 {
458        let total_active = self.total_active();
459        if total_active == 0 {
460            return 0.0;
461        }
462        (self.accept as f64 / total_active as f64) * 100.0
463    }
464
465    /// Merge another tally into this one
466    pub fn merge(&mut self, other: &VoteTally) {
467        self.accept += other.accept;
468        self.reject += other.reject;
469        self.abstain += other.abstain;
470        self.suggest += other.suggest;
471    }
472}
473
474
475pub fn __roundtrip_one(enum_name: &str, tag: &str) -> Result<(), Box<dyn std::error::Error>> {
476    match enum_name {
477        "AccountAuthOperationType" => {
478            let v = serde_json::Value::String(tag.to_string());
479            let val: AccountAuthOperationType = serde_json::from_value(v.clone())?;
480            let back = serde_json::to_value(&val)?;
481            if back != v {
482                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
483                    enum_name, tag, v, back).into());
484            }
485        }
486        "AccountType" => {
487            let v = serde_json::Value::String(tag.to_string());
488            let val: AccountType = serde_json::from_value(v.clone())?;
489            let back = serde_json::to_value(&val)?;
490            if back != v {
491                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
492                    enum_name, tag, v, back).into());
493            }
494        }
495        "AllowedTransactionBit" => {
496            let v = serde_json::Value::String(tag.to_string());
497            let val: AllowedTransactionBit = serde_json::from_value(v.clone())?;
498            let back = serde_json::to_value(&val)?;
499            if back != v {
500                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
501                    enum_name, tag, v, back).into());
502            }
503        }
504        "BookType" => {
505            let v = serde_json::Value::String(tag.to_string());
506            let val: BookType = serde_json::from_value(v.clone())?;
507            let back = serde_json::to_value(&val)?;
508            if back != v {
509                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
510                    enum_name, tag, v, back).into());
511            }
512        }
513        "DataEntryType" => {
514            let v = serde_json::Value::String(tag.to_string());
515            let val: DataEntryType = serde_json::from_value(v.clone())?;
516            let back = serde_json::to_value(&val)?;
517            if back != v {
518                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
519                    enum_name, tag, v, back).into());
520            }
521        }
522        "ExecutorVersion" => {
523            let v = serde_json::Value::String(tag.to_string());
524            let val: ExecutorVersion = serde_json::from_value(v.clone())?;
525            let back = serde_json::to_value(&val)?;
526            if back != v {
527                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
528                    enum_name, tag, v, back).into());
529            }
530        }
531        "KeyPageOperationType" => {
532            let v = serde_json::Value::String(tag.to_string());
533            let val: KeyPageOperationType = serde_json::from_value(v.clone())?;
534            let back = serde_json::to_value(&val)?;
535            if back != v {
536                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
537                    enum_name, tag, v, back).into());
538            }
539        }
540        "NetworkMaintenanceOperationType" => {
541            let v = serde_json::Value::String(tag.to_string());
542            let val: NetworkMaintenanceOperationType = serde_json::from_value(v.clone())?;
543            let back = serde_json::to_value(&val)?;
544            if back != v {
545                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
546                    enum_name, tag, v, back).into());
547            }
548        }
549        "ObjectType" => {
550            let v = serde_json::Value::String(tag.to_string());
551            let val: ObjectType = serde_json::from_value(v.clone())?;
552            let back = serde_json::to_value(&val)?;
553            if back != v {
554                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
555                    enum_name, tag, v, back).into());
556            }
557        }
558        "PartitionType" => {
559            let v = serde_json::Value::String(tag.to_string());
560            let val: PartitionType = serde_json::from_value(v.clone())?;
561            let back = serde_json::to_value(&val)?;
562            if back != v {
563                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
564                    enum_name, tag, v, back).into());
565            }
566        }
567        "SignatureType" => {
568            let v = serde_json::Value::String(tag.to_string());
569            let val: SignatureType = serde_json::from_value(v.clone())?;
570            let back = serde_json::to_value(&val)?;
571            if back != v {
572                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
573                    enum_name, tag, v, back).into());
574            }
575        }
576        "TransactionMax" => {
577            let v = serde_json::Value::String(tag.to_string());
578            let val: TransactionMax = serde_json::from_value(v.clone())?;
579            let back = serde_json::to_value(&val)?;
580            if back != v {
581                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
582                    enum_name, tag, v, back).into());
583            }
584        }
585        "TransactionType" => {
586            let v = serde_json::Value::String(tag.to_string());
587            let val: TransactionType = serde_json::from_value(v.clone())?;
588            let back = serde_json::to_value(&val)?;
589            if back != v {
590                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
591                    enum_name, tag, v, back).into());
592            }
593        }
594        "VoteType" => {
595            let v = serde_json::Value::String(tag.to_string());
596            let val: VoteType = serde_json::from_value(v.clone())?;
597            let back = serde_json::to_value(&val)?;
598            if back != v {
599                return Err(format!("Roundtrip failed for {}::{}: expected {}, got {}",
600                    enum_name, tag, v, back).into());
601            }
602        }
603        _ => return Err(format!("Unknown enum: {}", enum_name).into()),
604    }
605    Ok(())
606}
607
608pub fn __get_all_enum_variants() -> std::collections::HashMap<String, Vec<String>> {
609    let mut map = std::collections::HashMap::new();
610    map.insert("AccountAuthOperationType".to_string(), vec!["unknown".to_string(), "enable".to_string(), "disable".to_string(), "addauthority".to_string(), "removeauthority".to_string()]);
611    map.insert("AccountType".to_string(), vec!["unknown".to_string(), "anchorledger".to_string(), "identity".to_string(), "token".to_string(), "tokenaccount".to_string(), "litetokenaccount".to_string(), "blockledger".to_string(), "keypage".to_string(), "keybook".to_string(), "dataaccount".to_string(), "litedataaccount".to_string(), "unknownsigner".to_string(), "systemledger".to_string(), "liteidentity".to_string(), "syntheticledger".to_string()]);
612    map.insert("AllowedTransactionBit".to_string(), vec!["updatekeypage".to_string(), "updateaccountauth".to_string()]);
613    map.insert("BookType".to_string(), vec!["normal".to_string(), "validator".to_string(), "operator".to_string()]);
614    map.insert("DataEntryType".to_string(), vec!["unknown".to_string(), "factom".to_string(), "accumulate".to_string(), "doublehash".to_string()]);
615    map.insert("ExecutorVersion".to_string(), vec!["v1".to_string(), "v1-signatureAnchoring".to_string(), "v1-doubleHashEntries".to_string(), "v1-halt".to_string(), "v2".to_string(), "v2-baikonur".to_string(), "v2-vandenberg".to_string(), "v2-jiuquan".to_string(), "vnext".to_string()]);
616    map.insert("KeyPageOperationType".to_string(), vec!["unknown".to_string(), "update".to_string(), "remove".to_string(), "add".to_string(), "setthreshold".to_string(), "updateallowed".to_string(), "setrejectthreshold".to_string(), "setresponsethreshold".to_string()]);
617    map.insert("NetworkMaintenanceOperationType".to_string(), vec!["unknown".to_string(), "pendingtransactiongc".to_string()]);
618    map.insert("ObjectType".to_string(), vec!["unknown".to_string(), "account".to_string(), "transaction".to_string()]);
619    map.insert("PartitionType".to_string(), vec!["directory".to_string(), "block-validator".to_string(), "block-summary".to_string(), "bootstrap".to_string()]);
620    map.insert("SignatureType".to_string(), vec!["unknown".to_string(), "legacyed25519".to_string(), "ed25519".to_string(), "rcd1".to_string(), "receipt".to_string(), "synthetic".to_string(), "set".to_string(), "remote".to_string(), "btc".to_string(), "btclegacy".to_string(), "eth".to_string(), "delegated".to_string(), "internal".to_string(), "authority".to_string(), "rsasha256".to_string(), "ecdsasha256".to_string(), "typeddata".to_string()]);
621    map.insert("TransactionMax".to_string(), vec!["user".to_string(), "synthetic".to_string(), "system".to_string()]);
622    map.insert("TransactionType".to_string(), vec!["unknown".to_string(), "createIdentity".to_string(), "createTokenAccount".to_string(), "sendTokens".to_string(), "createDataAccount".to_string(), "writeData".to_string(), "writeDataTo".to_string(), "acmeFaucet".to_string(), "createToken".to_string(), "issueTokens".to_string(), "burnTokens".to_string(), "createLiteTokenAccount".to_string(), "createKeyPage".to_string(), "createKeyBook".to_string(), "addCredits".to_string(), "updateKeyPage".to_string(), "lockAccount".to_string(), "burnCredits".to_string(), "transferCredits".to_string(), "updateAccountAuth".to_string(), "updateKey".to_string(), "networkMaintenance".to_string(), "activateProtocolVersion".to_string(), "signPending".to_string(), "syntheticCreateIdentity".to_string(), "syntheticWriteData".to_string(), "syntheticDepositTokens".to_string(), "syntheticDepositCredits".to_string(), "syntheticBurnTokens".to_string(), "syntheticForwardTransaction".to_string(), "systemGenesis".to_string(), "directoryAnchor".to_string(), "blockValidatorAnchor".to_string(), "systemWriteData".to_string()]);
623    map.insert("VoteType".to_string(), vec!["accept".to_string(), "reject".to_string(), "abstain".to_string(), "suggest".to_string()]);
624    map
625}