aleph_types/message/execution/
base.rs1use crate::chain::{Address, Chain};
2use crate::item_hash::ItemHash;
3use crate::message::execution::environment::{HostRequirements, MachineResources};
4use crate::message::execution::volume::MachineVolume;
5use serde::{Deserialize, Serialize};
6use std::collections::HashMap;
7
8#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
10#[serde(rename_all = "lowercase")]
11pub enum Encoding {
12 Plain,
13 Zip,
14 Squashfs,
15}
16
17#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
18#[serde(rename_all = "lowercase")]
19pub enum PaymentType {
20 Hold,
21 Superfluid,
22 Credit,
23}
24
25#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
26pub struct Payment {
27 #[serde(default)]
29 pub chain: Option<Chain>,
30 #[serde(default)]
32 pub receiver: Option<Address>,
33 #[serde(rename = "type")]
34 pub payment_type: PaymentType,
35}
36
37#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
39#[serde(rename_all = "lowercase")]
40pub enum Interface {
41 Asgi,
42 Binary,
43}
44
45#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
47#[serde(rename_all = "lowercase")]
48pub struct ExecutableContent {
49 pub allow_amend: bool,
51 #[serde(default)]
53 pub metadata: Option<HashMap<String, serde_json::Value>>,
54 #[serde(default)]
56 pub variables: Option<HashMap<String, String>>,
57 pub resources: MachineResources,
59 #[serde(default)]
61 pub payment: Option<Payment>,
62 #[serde(default)]
63 pub requirements: Option<HostRequirements>,
64 #[serde(default)]
66 pub volumes: Vec<MachineVolume>,
67 #[serde(default)]
69 pub replaces: Option<ItemHash>,
70 #[serde(default)]
71 pub authorized_keys: Option<Vec<String>>,
72}