Ton

Форк
0
52 строки · 1.5 Кб
1
#include "stdlib.fc";
2
#include "modules/constants.fc";
3
#include "modules/utils-config.fc";
4
#include "modules/utils.fc";
5
;; #include "modules/utils-config-mock.fc";
6
#include "modules/store-base.fc";
7
#include "modules/store-nominators.fc";
8
#include "modules/store-validator.fc";
9
#include "modules/model.fc";
10
#include "modules/op-controller.fc";
11
#include "modules/op-owner.fc";
12
#include "modules/op-common.fc";
13
#include "modules/op-nominators.fc";
14
#include "modules/get.fc";
15

16
() recv_internal(int msg_value, cell in_msg_cell, slice in_msg) impure {
17
    
18
    ;; Prepare message context
19
    var cs = in_msg_cell.begin_parse();
20
    var flags = cs~load_uint(4);  ;; int_msg_info$0 ihr_disabled:Bool bounce:Bool bounced:Bool
21
    slice s_addr = cs~load_msg_addr();
22
    load_base_data();
23

24
    ;; Handle controller messages
25
    if (equal_slices(s_addr, ctx_controller)) {
26
        load_validator_data();
27
        op_controller(flags, msg_value, in_msg);
28
        return ();
29
    }
30

31
    ;; Handle elector messages
32
    if (equal_slices(s_addr, ctx_proxy)) {
33
        load_validator_data();
34
        op_elector(flags, msg_value, in_msg);
35
        return ();
36
    }
37

38
    ;; Handle owner messages
39
    if (equal_slices(s_addr, ctx_owner)) {
40
        op_owner(flags, msg_value, in_msg);
41
        return ();
42
    }
43

44
    ;; Nominators
45
    var address = parse_work_addr(s_addr);
46
    op_nominators(address, flags, msg_value, in_msg);
47
}
48

49
() recv_external(slice in_msg) impure {
50
    ;; Do not accept external messages
51
    throw(error::invalid_message());
52
}
53

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.