whisky_common/models/tx_builder_types/
script.rs

1use serde::{Deserialize, Serialize};
2
3use super::RefTxIn;
4
5#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub enum SimpleScriptSource {
8    ProvidedSimpleScriptSource(ProvidedSimpleScriptSource),
9    InlineSimpleScriptSource(InlineSimpleScriptSource),
10}
11
12#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
13#[serde(rename_all = "camelCase")]
14pub struct ProvidedSimpleScriptSource {
15    pub script_cbor: String,
16}
17
18#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
19#[serde(rename_all = "camelCase")]
20pub struct InlineSimpleScriptSource {
21    pub ref_tx_in: RefTxIn,
22    pub simple_script_hash: String,
23    pub script_size: usize,
24}
25
26#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
27#[serde(rename_all = "camelCase")]
28pub enum ScriptSource {
29    ProvidedScriptSource(ProvidedScriptSource),
30    InlineScriptSource(InlineScriptSource),
31}
32
33#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
34#[serde(rename_all = "camelCase")]
35pub struct ProvidedScriptSource {
36    pub script_cbor: String,
37    pub language_version: LanguageVersion,
38}
39
40#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
41#[serde(rename_all = "camelCase")]
42pub struct InlineScriptSource {
43    pub ref_tx_in: RefTxIn,
44    pub script_hash: String,
45    pub language_version: LanguageVersion,
46    pub script_size: usize,
47}
48
49#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
50#[serde(rename_all = "camelCase")]
51pub enum LanguageVersion {
52    V1,
53    V2,
54    V3,
55}
56
57#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
58#[serde(rename_all = "camelCase")]
59pub enum DatumSource {
60    ProvidedDatumSource(ProvidedDatumSource),
61    InlineDatumSource(InlineDatumSource),
62}
63
64#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
65#[serde(rename_all = "camelCase")]
66pub struct ProvidedDatumSource {
67    pub data: String,
68}
69
70#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
71#[serde(rename_all = "camelCase")]
72pub struct InlineDatumSource {
73    pub tx_hash: String,
74    pub tx_index: u32,
75}
76
77// #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
78// #[serde(rename_all = "camelCase")]
79// pub struct ScriptSourceInfo {
80//     pub tx_hash: String,
81//     pub tx_index: u32,
82//     pub spending_script_hash: Option<String>,
83// }