| hash | " << msg.root->get_hash().to_hex() << " | 
|---|---|
| type | external | 
| source | NONE | 
| destination | " << AddressCell{info.dest} << " | 
| type | external OUT | 
| source | " << AddressCell{info.src} << " | 
| destination | NONE | 
| lt | " << info.created_lt << " | 
| time | " << info.created_at << " (" << time_to_human(info.created_at) << ") | 
| type | internal | 
| source | " << AddressCell{info.src} << " | 
| destination | " << AddressCell{info.dest} << " | 
| lt | " << info.created_lt << " | 
| time | " << info.created_at << " (" << time_to_human(info.created_at) << ") | 
| value | " << currency_collection.to_str()<< " | 
| block | " << trans_c.block_id.id.to_str() << " | 
|---|---|
| workchain | " << trans_c.addr.workchain << " | 
| account hex | " << trans_c.addr.addr.to_hex() << " | 
| account | " << trans_c.addr.rserialize(true) << " | 
| hash | " << trans_c.root->get_hash().to_hex() << " | 
| lt | " << trans.lt << " | 
| time | " << trans.now << " (" << time_to_human(trans.now) << ") | 
| out messages | "; vm::Dictionary dict{trans.r1.out_msgs, 15}; for (td::int32 i = 0; i < trans.outmsg_cnt; i++) { auto out_msg = dict.lookup_ref(td::BitArray<15>{i}); *this << " " << i << ""; } *this << " | 
| in message | "; auto in_msg = trans.r1.in_msg->prefetch_ref(); if (in_msg.is_null()) { *this << "NONE"; } else { *this << "" << in_msg->get_hash() << ""; } *this << " | 
| prev transaction | "; auto prev_lt = trans.prev_trans_lt; auto prev_hash = trans.prev_trans_hash; if (prev_lt > 0) { *this << "lt=" << prev_lt << " hash=" << prev_hash.to_hex() << ""; } else { *this << "NONE"; } *this << " | 
| block | " << block_id.id.to_str() << " | 
|---|---|
| workchain | " << acc_c.addr.workchain << " | 
| account hex | " << acc_c.addr.addr.to_hex() << " | 
| account | " << acc_c.addr.rserialize(true) << " | 
| balance | " << balance.to_str() << " | 
| last transaction | " << "lt=" << last_trans_lt << " hash=" << last_trans_hash.to_hex() << " | 
| last transaction | no transactions | 
| block | " << block_id.id.to_str() << " | 
|---|---|
| roothash | " << block_id.root_hash.to_hex() << " | 
| filehash | " << block_id.file_hash.to_hex() << " | 
| time | " << info.gen_utime << " (" << time_to_human(info.gen_utime) << ") | 
| lt | " << info.start_lt << " .. " << info.end_lt << " | 
| global_id | " << blk.global_id << " | 
| version | " << info.version << " | 
| flags | " << info.flags << " | 
| key_block | " << info.key_block << " | 
| not_master | " << info.not_master << " | 
| after_merge | " << info.after_merge << " | 
| after_split | " << info.after_split << " | 
| before_split | " << info.before_split << " | 
| want_merge | " << info.want_merge << " | 
| want_split | " << info.want_split << " | 
| validator_list_hash_short | " << info.gen_validator_list_hash_short << " | 
| catchain_seqno | " << info.gen_catchain_seqno << " | 
| min_ref_mc_seqno | " << info.min_ref_mc_seqno << " | 
| vert_seqno | " << info.vert_seq_no << " | 
| vert_seqno_incr | " << info.vert_seqno_incr << " | 
| prev_key_block_seqno | " << ton::BlockId{ton::masterchainId, ton::shardIdAll, info.prev_key_block_seqno} << " | 
| prev block | " << id << " | 
| next block | " << ton::BlockId{block_id.id.workchain, block_id.id.shard, block_id.id.seqno + 1} << " | 
| next block | " << ton::BlockId{block_id.id.workchain, ton::shard_child(block_id.id.shard, true), block_id.id.seqno + 1} << " | 
| next block | " << ton::BlockId{block_id.id.workchain, ton::shard_child(block_id.id.shard, false), block_id.id.seqno + 1} << " | 
| masterchain block | " << mc_blkid << " | 
download block" << "view block\n"; if (block_id.is_masterchain()) { *this << "view config\n"; } return *this << "
| shard" << " | seqno" << " | created" << " | wantsplit" << " | wantmerge" << " | beforesplit" << " | beforemerge" << " | |
|---|---|---|---|---|---|---|---|
| " << shard.to_str() << " | top_block_id()} << "\">" << ref->top_block_id().id.seqno << " | created_at()) << "\">" << ref->created_at() << "" << " | " << ref->want_split_ << "" << " | " << ref->want_merge_ << "" << " | " << ref->before_split_ << "" << " | " << ref->before_merge_ << ""; } else { *this << " | " << shard.to_str() << ""; } *this << " | 
| seq" << " | account" << " | lt" << " | hash" << " | link" << " | 
|---|---|---|---|---|
| " << ++idx << "" << " | " << x.addr.rserialize(true) << "" << " | " << x.lt << "" << " | " << x.hash.to_hex() << "" << " | view | 
| " << ++idx << "" << " | more" << " | more" << " | more | 
\n" << "\n" << "Search block\n" << "\n" << "\n" << "Search account\n" << "\n" << "\n" << "Search transaction\n" << "\n" << "
\n"; *this << "