Message Monitor API is optimized for monitoring batches of messages.
It can be used in 2 ways:
subscribe for the statuses of a batch of messages via websocket
query the status of a batch of messages with 1 query
Specification:
subscription { # Subscribes for message processing results. # User will have received exactly one result per each message. recentExtInMessageStatuses(messages: [MessageMonitoringParams!]): MessageMonitoringResult}query {"" Returns message processing results for messages, that were sent within the past hour and are cached in the transaction pool. If you sent your message earlier than 1 hour ago, and the query returned TIMEOUT, use message hash to retrieve message data and status."" recentExtInMessageStatuses(messages: [MessageMonitoringParams!]): [MessageMonitoringResult!]}typeSendMessageParams {"" Message BOC in Base64"" message: String!}typeMessageMonitoringParams {"" TVM hash of the message BOC "" hash: String""Destinationaddressoftheexternalinboundmessage"" address: String""MessageBOCinbase64, needed to resolve an error in case of failed message processing "" boc: String""Waitformessagefinalizationuntilwait_untilshardblocktimeinUNIXtime"" wait_until: Float!}typeMessageMonitoringResult {"" TVM hash of the message BOC "" hash: String!""Showsmessagestatus, if it was or was not finalized until wait_until block time"" status: MessageMonitoringStatus!""Containstransaction.IncaseofFINALIZEDthetransactionisextractedfromtheblock.IncaseofTIMEOUTthetransactionisemulatedusinglastknownaccountstate.CanbeNullincaseofemulationonnon-existingaccount."" transaction: Transaction""ContainsanerrormessagewhenstatusisTIMEOUT. Messagebocisneededtoresolveerrormessage."" error: String}enumMessageMonitoringStatus {"" Returned when the messages is processed before wait_until block time"" FINALIZED,"" Returned when the message was not processed until wait_until block time"" TIMEOUT"" Reserved for future statuses. Is never returned."" RESERVED}