radix_engine_interface/blueprints/resource/
worktop.rs1use crate::blueprints::resource::*;
2use crate::internal_prelude::*;
3use radix_common::constants::RESOURCE_PACKAGE;
4use radix_common::data::scrypto::model::*;
5use radix_common::data::scrypto::*;
6use radix_common::math::Decimal;
7use radix_common::types::*;
8use sbor::rust::prelude::*;
9use sbor::*;
10
11pub const WORKTOP_BLUEPRINT: &str = "Worktop";
12
13pub const WORKTOP_DROP_IDENT: &str = "Worktop_drop";
14
15#[derive(Debug, Eq, PartialEq, ScryptoSbor)]
16pub struct WorktopDropInput {
17 pub worktop: OwnedWorktop,
18}
19
20#[derive(Debug, Eq, PartialEq, ManifestSbor)]
21pub struct WorktopDropManifestInput {
22 pub worktop: InternalAddress,
23}
24
25#[derive(Debug, Eq, PartialEq, ScryptoCategorize, ScryptoEncode, ScryptoDecode)]
26#[sbor(transparent)]
27pub struct OwnedWorktop(pub Own);
28
29impl Describe<ScryptoCustomTypeKind> for OwnedWorktop {
30 const TYPE_ID: RustTypeId =
31 RustTypeId::Novel(const_sha1::sha1("OwnedWorktop".as_bytes()).as_bytes());
32
33 fn type_data() -> TypeData<ScryptoCustomTypeKind, RustTypeId> {
34 TypeData {
35 kind: TypeKind::Custom(ScryptoCustomTypeKind::Own),
36 metadata: TypeMetadata::no_child_names("OwnedWorktop"),
37 validation: TypeValidation::Custom(ScryptoCustomTypeValidation::Own(
38 OwnValidation::IsTypedObject(Some(RESOURCE_PACKAGE), WORKTOP_BLUEPRINT.to_string()),
39 )),
40 }
41 }
42
43 fn add_all_dependencies(_aggregator: &mut TypeAggregator<ScryptoCustomTypeKind>) {}
44}
45
46pub type WorktopDropOutput = ();
47
48pub const WORKTOP_PUT_IDENT: &str = "Worktop_put";
49
50#[derive(Debug, Eq, PartialEq, ScryptoSbor)]
51pub struct WorktopPutInput {
52 pub bucket: Bucket,
53}
54
55#[derive(Debug, Eq, PartialEq, ManifestSbor)]
56pub struct WorktopPutManifestInput {
57 pub bucket: ManifestBucket,
58}
59
60pub type WorktopPutOutput = ();
61
62pub const WORKTOP_TAKE_IDENT: &str = "Worktop_take";
63
64#[derive(Debug, Clone, Eq, PartialEq, ScryptoSbor, ManifestSbor)]
65pub struct WorktopTakeInput {
66 pub amount: Decimal,
67 pub resource_address: ResourceAddress,
68}
69
70pub type WorktopTakeManifestInput = WorktopTakeInput;
71
72pub type WorktopTakeOutput = Bucket;
73
74pub const WORKTOP_TAKE_NON_FUNGIBLES_IDENT: &str = "Worktop_take_non_fungibles";
75
76#[derive(Debug, Clone, Eq, PartialEq, ScryptoSbor, ManifestSbor)]
77pub struct WorktopTakeNonFungiblesInput {
78 pub ids: IndexSet<NonFungibleLocalId>,
79 pub resource_address: ResourceAddress,
80}
81
82pub type WorktopTakeNonFungiblesManifestInput = WorktopTakeNonFungiblesInput;
83
84pub type WorktopTakeNonFungiblesOutput = Bucket;
85
86pub const WORKTOP_TAKE_ALL_IDENT: &str = "Worktop_take_all";
87
88#[derive(Debug, Clone, Eq, PartialEq, ScryptoSbor, ManifestSbor)]
89pub struct WorktopTakeAllInput {
90 pub resource_address: ResourceAddress,
91}
92
93pub type WorktopTakeAllManifestInput = WorktopTakeAllInput;
94
95pub type WorktopTakeAllOutput = Bucket;
96
97pub const WORKTOP_ASSERT_CONTAINS_IDENT: &str = "Worktop_assert_contains";
98
99#[derive(Debug, Clone, Eq, PartialEq, ScryptoSbor, ManifestSbor)]
100pub struct WorktopAssertContainsInput {
101 pub resource_address: ResourceAddress,
102}
103
104pub type WorktopAssertContainsManifestInput = WorktopAssertContainsInput;
105
106pub type WorktopAssertContainsOutput = ();
107
108pub const WORKTOP_ASSERT_CONTAINS_AMOUNT_IDENT: &str = "Worktop_assert_contains_amount";
109
110#[derive(Debug, Clone, Eq, PartialEq, ScryptoSbor, ManifestSbor)]
111pub struct WorktopAssertContainsAmountInput {
112 pub resource_address: ResourceAddress,
113 pub amount: Decimal,
114}
115
116pub type WorktopAssertContainsAmountManifestInput = WorktopAssertContainsAmountInput;
117
118pub type WorktopAssertContainsAmountOutput = ();
119
120pub const WORKTOP_ASSERT_CONTAINS_NON_FUNGIBLES_IDENT: &str =
121 "Worktop_assert_contains_non_fungibles";
122
123#[derive(Debug, Clone, Eq, PartialEq, ScryptoSbor, ManifestSbor)]
124pub struct WorktopAssertContainsNonFungiblesInput {
125 pub resource_address: ResourceAddress,
126 pub ids: IndexSet<NonFungibleLocalId>,
127}
128
129pub type WorktopAssertContainsNonFungiblesManifestInput = WorktopAssertContainsNonFungiblesInput;
130
131pub type WorktopAssertContainsNonFungiblesOutput = ();
132
133pub const WORKTOP_ASSERT_RESOURCES_INCLUDE_IDENT: &str = "Worktop_assert_resources_include";
134
135#[derive(Debug, Clone, Eq, PartialEq, ScryptoSbor)]
136pub struct WorktopAssertResourcesIncludeInput {
137 pub constraints: ManifestResourceConstraints,
138}
139
140pub type WorktopAssertResourcesIncludeOutput = ();
141
142pub const WORKTOP_ASSERT_RESOURCES_ONLY_IDENT: &str = "Worktop_assert_resources_only";
143
144#[derive(Debug, Clone, Eq, PartialEq, ScryptoSbor)]
145pub struct WorktopAssertResourcesOnlyInput {
146 pub constraints: ManifestResourceConstraints,
147}
148
149pub type WorktopAssertResourcesOnlyOutput = ();
150
151pub const WORKTOP_DRAIN_IDENT: &str = "Worktop_drain";
152
153#[derive(Debug, Clone, Eq, PartialEq, ScryptoSbor, ManifestSbor)]
154pub struct WorktopDrainInput {}
155
156pub type WorktopDrainManifestInput = WorktopDrainInput;
157
158pub type WorktopDrainOutput = Vec<Bucket>;