Решено
Это отличный вопрос! (Мне тоже потребовалось много времени, чтобы понять)
** Итак, по сути, вы спрашиваете:**
Почему мы храним uint(....) там? * И почему мы там имеем дело с int_msg_info?
1/ Структура сообщения
Чтобы понять, почему мы храним uint(...) в сообщении, вам нужно понять, как TVM работает для Message. На практике макет сообщения показывает, что для "сжатия" сообщения, которое мы хотим сохранить, мы должны сохранить его в "ячейку" и загрузить в смарт-контракт в качестве сообщения.
2/ Значения по умолчанию для полей сообщений
Есть ряд значений, которые нам нужно установить "по умолчанию", указав значения для bounced, src, ihr_fee, fwd_fee в некоторых случаях.
Например, ниже приведен пример сообщения, которое мы помещаем в ячейку:
var msg = begin_cell()
.store_uint(0, 1) ;; tag
.store_uint(1, 1) ;; ihr_disabled
.store_uint(1, 1) ;; allow bounces
.store_uint(0, 1) ;; not bounced itself
.store_slice(source)
.store_slice(destination)
;; serialize CurrencyCollection (see below)
.store_coins(amount)
.store_dict(extra_currencies)
.store_coins(0) ;; ihr_fee
.store_coins(fwd_value) ;; fwd_fee
.store_uint(cur_lt(), 64) ;; lt of transaction
.store_uint(now(), 32) ;; unixtime of transaction
.store_uint(0, 1) ;; no init-field flag (Maybe)
.store_uint(0, 1) ;; in-place message body flag (Either)
.store_slice(msg_body)
.end_cell();
3/ Значение целых чисел в .store_uint(0, 1 + 4 + 4 + 64 + 32 + 1 + 1)
Целые числа, используемые в .store_uint(0, 1 + 4 + 4 + 64 + 32 + 1 + 1) укажите количество битов в соответствии со схемой TL-B с разбивкой по длине полей, которые там указаны. Но мы всегда указываем 0.
Каждое целое число представляет длину в битах определенного поля в заголовке.
Первое целое число '1' предназначено для поля tag * За ним следуют два '4для полейihr_disabledиbounce* Затем 64 бита для поляcreated_lt* 32 бита для поляcreated_at' * и, наконец, два 1' для 'init и `поля тела.
Однако в приведенном примере все поля пусты, поэтому мы указываем 0 бит для всех полей.
Ссылка:
https://docs.ton.org/develop/smart-contracts/messages#message-layout *
https://docs.ton.org/develop/smart-contracts/tutorials/wallet#commonmsginfo