Flex
Flex exchange system
GlobalConfig.hpp
Go to the documentation of this file.
1 
7 #pragma once
8 
9 #include <tvm/schema/message.hpp>
10 #include <tvm/smart_switcher.hpp>
11 #include <tvm/contract_handle.hpp>
12 #include <tvm/replay_attack_protection/timestamp.hpp>
13 #include "FlexVersion.hpp"
14 
15 namespace tvm {
16 
19  address super_root;
20 };
21 
25  address wrappers_cfg;
26  address flex;
27  address user_cfg;
28  string description;
29 };
30 
35 __interface IGlobalConfig {
36  [[deploy, internal, noaccept]]
37  void onDeploy(
38  uint128 keep_evers,
39  address wrappers_cfg,
40  address flex,
41  address user_cfg,
42  string description
43  );
44 
46  [[getter]]
48 
50  [[getter]]
52 };
53 using IGlobalConfigPtr = handle<IGlobalConfig>;
54 
56 struct DGlobalConfig {
58  address_opt wrappers_cfg_;
59  address_opt flex_;
60  address_opt user_cfg_;
61  opt<string> description_;
62 };
63 
66 __interface EGlobalConfig {
67 };
68 
70 template<>
71 struct preparer<IGlobalConfig, DGlobalConfig> {
72  __always_inline
73  static std::pair<StateInit, uint256> execute(DGlobalConfig data, cell code) {
74  cell data_cl = prepare_persistent_data<IGlobalConfig, void>({}, data);
75  StateInit init { {}, {}, code, data_cl, {} };
76  cell init_cl = build(init).make_cell();
77  return { init, uint256(tvm_hash(init_cl)) };
78  }
79 };
80 
81 } // namespace tvm
Flex version structure.
GlobalConfig persistent data struct.
Definition: GlobalConfig.hpp:56
opt< string > description_
Update description.
Definition: GlobalConfig.hpp:61
address_opt user_cfg_
User contracts and debots configuration.
Definition: GlobalConfig.hpp:60
address_opt wrappers_cfg_
WrappersConfig address.
Definition: GlobalConfig.hpp:58
FlexVersion version_
Flex version.
Definition: GlobalConfig.hpp:57
address_opt flex_
Flex root for this version.
Definition: GlobalConfig.hpp:59
GlobalConfig events interface.
Definition: GlobalConfig.hpp:66
Flex version triplet.
Definition: FlexVersion.hpp:14
GlobalConfig details for getter.
Definition: GlobalConfig.hpp:23
string description
Update description.
Definition: GlobalConfig.hpp:28
FlexVersion version
Flex version.
Definition: GlobalConfig.hpp:24
address wrappers_cfg
WrappersConfig address.
Definition: GlobalConfig.hpp:25
address user_cfg
User contracts and debots configuration.
Definition: GlobalConfig.hpp:27
address flex
Flex root for this version.
Definition: GlobalConfig.hpp:26
GlobalConfig configuration in code salt.
Definition: GlobalConfig.hpp:18
address super_root
Flex SuperRoot address.
Definition: GlobalConfig.hpp:19
GlobalConfig contract interface. GlobalConfig is an immutable "current version update config" contrac...
Definition: GlobalConfig.hpp:35
GlobalConfigDetails getDetails()
Get info about contract state details.
void onDeploy(uint128 keep_evers, address wrappers_cfg, address flex, address user_cfg, string description)
GlobalConfigSalt getConfig()
Get config from code salt.