radix_engine/blueprints/test_utils/
blueprint.rs

1use crate::errors::RuntimeError;
2use crate::internal_prelude::*;
3
4use radix_engine_interface::api::SystemApi;
5use radix_engine_interface::blueprints::test_utils::*;
6
7pub struct TestUtilsBlueprint;
8
9impl TestUtilsBlueprint {
10    pub fn get_definition() -> BlueprintDefinitionInit {
11        let mut aggregator = TypeAggregator::<ScryptoCustomTypeKind>::new();
12
13        let functions = indexmap! {
14            TEST_UTILS_PANIC_IDENT.to_owned() => FunctionSchemaInit {
15                receiver: None,
16                input: TypeRef::Static(
17                    aggregator.add_child_type_and_descendents::<TestUtilsPanicInput>(),
18                ),
19                output: TypeRef::Static(
20                    aggregator.add_child_type_and_descendents::<TestUtilsPanicOutput>(),
21                ),
22                export: TEST_UTILS_PANIC_IDENT.to_string(),
23            }
24        };
25        let schema = generate_full_schema(aggregator);
26
27        BlueprintDefinitionInit {
28            blueprint_type: BlueprintType::default(),
29            is_transient: false,
30            feature_set: Default::default(),
31            dependencies: Default::default(),
32            schema: BlueprintSchemaInit {
33                generics: Default::default(),
34                schema,
35                state: BlueprintStateSchemaInit {
36                    fields: Default::default(),
37                    collections: Default::default(),
38                },
39                events: BlueprintEventSchemaInit {
40                    event_schema: Default::default(),
41                },
42                types: BlueprintTypeSchemaInit::default(),
43                functions: BlueprintFunctionsSchemaInit { functions },
44                hooks: BlueprintHooksInit {
45                    hooks: Default::default(),
46                },
47            },
48            royalty_config: Default::default(),
49            auth_config: AuthConfig {
50                function_auth: FunctionAuth::AllowAll,
51                method_auth: MethodAuthTemplate::StaticRoleDefinition(roles_template!()),
52            },
53        }
54    }
55
56    pub fn panic<Y: SystemApi<RuntimeError>>(
57        message: &str,
58        _api: &mut Y,
59    ) -> Result<(), RuntimeError> {
60        panic!("{}", message);
61    }
62}