fireblocks_sdk/models/
contract_upload_request.rs1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ContractUploadRequest {
16 #[serde(rename = "name")]
18 pub name: String,
19 #[serde(rename = "description")]
21 pub description: String,
22 #[serde(rename = "longDescription", skip_serializing_if = "Option::is_none")]
25 pub long_description: Option<String>,
26 #[serde(rename = "bytecode")]
29 pub bytecode: String,
30 #[serde(rename = "sourcecode", skip_serializing_if = "Option::is_none")]
32 pub sourcecode: Option<String>,
33 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
35 pub r#type: Option<Type>,
36 #[serde(rename = "docs", skip_serializing_if = "Option::is_none")]
39 pub docs: Option<models::ContractDoc>,
40 #[serde(rename = "abi")]
41 pub abi: Vec<Vec<models::AbiFunction>>,
42 #[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
45 pub attributes: Option<models::ContractAttributes>,
46}
47
48impl ContractUploadRequest {
49 pub fn new(
50 name: String,
51 description: String,
52 bytecode: String,
53 abi: Vec<Vec<models::AbiFunction>>,
54 ) -> ContractUploadRequest {
55 ContractUploadRequest {
56 name,
57 description,
58 long_description: None,
59 bytecode,
60 sourcecode: None,
61 r#type: None,
62 docs: None,
63 abi,
64 attributes: None,
65 }
66 }
67}
68#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
70pub enum Type {
71 #[serde(rename = "FUNGIBLE_TOKEN")]
72 FungibleToken,
73 #[serde(rename = "NON_FUNGIBLE_TOKEN")]
74 NonFungibleToken,
75 #[serde(rename = "TOKEN_UTILITY")]
76 TokenUtility,
77}
78
79impl Default for Type {
80 fn default() -> Type {
81 Self::FungibleToken
82 }
83}