mod.rs

Overview

This file defines GraphQL schema types and enums related to messages in a blockchain or distributed ledger system. It provides data structures for inbound messages (InMsg), outbound messages (OutMsg), message envelopes (MsgEnvelope), and a comprehensive Message type. Additionally, it includes enumerations that classify message types and their processing statuses.

The primary functionality revolves around representing message data in a GraphQL API context, including conversion from database message models to GraphQL objects, formatting of large integer values for client consumption, and encapsulating message metadata. The file also exposes filters and resolvers for querying messages.

Enumerations

InMsgTypeEnum

Defines the types of inbound messages received by the system.

MessageTypeEnum

Classifies messages into internal or external directions.

MessageProcessingStatusEnum

Represents the internal processing status of messages.

OutMsgTypeEnum

Enumerates outbound message types.

Structs

InMsg

Represents an inbound message with associated metadata and optional fields.

MsgEnvelope

Represents the envelope of a message indicating routing information.

Message

Represents a detailed message entity with comprehensive metadata.

OutMsg

Represents an outbound message including import metadata and message envelopes.

Implementation Details

Interactions with Other Modules


Mermaid Diagram

classDiagram
class InMsg {
-fwd_fee: Option<String>
-ihr_fee: Option<String>
+in_msg: Option<MsgEnvelope>
+msg_id: Option<String>
+msg_type: Option<i32>
+msg_type_name: Option<InMsgTypeEnum>
+out_msg: Option<MsgEnvelope>
+proof_created: Option<String>
+proof_delivered: Option<String>
+transaction_id: Option<String>
-transit_fee: Option<String>
+fwd_fee()
+ihr_fee()
+transit_fee()
}
class MsgEnvelope {
+cur_addr: Option<String>
-fwd_fee_remaining: Option<String>
+msg_id: Option<String>
+next_addr: Option<String>
+fwd_fee_remaining()
}
class Message {
+id: String
+block_id: Option<String>
+boc: Option<String>
+body: Option<String>
+body_hash: Option<String>
+bounce: Option<bool>
+bounced: Option<bool>
+code: Option<String>
+code_hash: Option<String>
+created_at: Option<u64>
-created_lt: Option<String>
+data: Option<String>
+data_hash: Option<String>
+dst: Option<String>
+dst_transaction: Option<Transaction>
+dst_chain_order: Option<String>
+dst_workchain_id: Option<i32>
-fwd_fee: Option<String>
+ihr_disabled: Option<bool>
-ihr_fee: Option<String>
+library: Option<String>
+library_hash: Option<String>
+msg_type: Option<i32>
+msg_type_name: Option<MessageTypeEnum>
+proof: Option<String>
+src: Option<String>
+src_chain_order: Option<String>
+src_dapp_id: Option<String>
+src_transaction: Option<Transaction>
+src_workchain_id: Option<i32>
+status: Option<i32>
+status_name: Option<MessageProcessingStatusEnum>
+tick: Option<bool>
+tock: Option<bool>
+transaction_id: Option<String>
-value: Option<String>
+value_other: Option<Vec<OtherCurrency>>
+created_lt()
+ihr_fee()
+fwd_fee()
+value()
}
class OutMsg {
-import_block_lt: Option<String>
+imported: Option<InMsg>
+msg_env_hash: Option<String>
+msg_id: Option<String>
+msg_type: Option<i32>
+msg_type_name: Option<OutMsgTypeEnum>
-next_addr_pfx: Option<String>
+next_workchain: Option<i32>
+out_msg: Option<MsgEnvelope>
+reimport: Option<InMsg>
+transaction_id: Option<String>
+import_block_lt()
+next_addr_pfx()
}
InMsg --> MsgEnvelope
InMsg --> MsgEnvelope : out_msg
Message --> Transaction : dst_transaction
Message --> Transaction : src_transaction
OutMsg --> InMsg : imported
OutMsg --> InMsg : reimport
OutMsg --> MsgEnvelope : out_msg