Expand description
Messaging API for Gear programs.
This module contains an API to process incoming messages and synchronously send outgoing ones. Messages are the primary communication interface between actors (users and programs).
Every Gear program has code that handles messages. During message processing, a program can send messages to other programs and users, including a reply to the initial message.
When some actor (user or program) sends a message to the program, it invokes
this program by executing the handle
function. The invoked program can
obtain details of incoming messages by using this module’s API (source
,
size
, read
, id
, value
, etc.).
Optionally the program can send one or more messages to other actors. Also, it can send a reply that differs from a regular message in two ways:
- There can be no more than one reply;
- It is impossible to choose the reply’s destination, as it is always sent to the program invoker.
Note that messages and a reply are not sent immediately but collected during the program execution and enqueued after the execution successfully ends.
Functions§
- Get an identifier of the message that is currently being processed.
- Get a payload of the message that is currently being processed.
- Get a payload of the message that is currently being processed, starting from some particular offset.
- Send a new message as a reply to the message that is currently being processed.
- Get the reply code of the message being processed.
- Finalize and send the current reply message.
- Same as
reply_commit
, but it spends gas from a reservation instead of borrowing it from the gas limit provided with the incoming message. - Same as
reply_commit
, but with an explicit gas limit. - Same as
reply
, but it spends gas from a reservation instead of borrowing it from the gas limit provided with the incoming message. - Same as
reply
, but relays the incoming message payload. - Same as
reply_input
, but with explicit gas limit. - Push a payload part to the current reply message.
- Same as
reply_push
but uses the input buffer as a payload source. - Get an identifier of the initial message on which the current
handle_reply
function is called. - Same as
reply
, but with an explicit gas limit. - Send a new message to the program or user.
- Finalize and send the message formed in parts.
- Same as
send_commit
, but sends the message after thedelay
expressed in block count. - Same as
send_commit_from_reservation
, but sends the message after thedelay
expressed in block count. - Same as
send_commit
, but it spends gas from a reservation instead of borrowing it from the gas limit provided with the incoming message. - Same as
send_commit
, but with an explicit gas limit. - Same as
send_commit_with_gas
, but sends the message after thedelay
expressed in block count. - Same as
send
, but sends the message after thedelay
expressed in block count. - Same as
send_from_reservation
, but sends the message after thedelay
expressed in block count. - Same as
send
, but it spends gas from a reservation instead of borrowing it from the gas limit provided with the incoming message. - Initialize a message to send formed in parts.
- Same as
send
but uses the input buffer as a payload source. - Same as
send_input
, but sends delayed. - Same as
send_input
, but with explicit gas limit. - Same as
send_input_with_gas
, but sends delayed. - Push a payload part of the message to be sent in parts.
- Same as
send_push
but uses the input buffer as a payload source. - Same as
send
, but with an explicit gas limit. - Same as
send_with_gas
, but sends the message after thedelay
expressed in block count. - Get the reply code of the message being processed.
- Get an identifier of the message which issued a signal.
- Get the payload size of the message that is being processed.
- Get the identifier of the message source (256-bit address).
- Get the value associated with the message that is being processed.
- Executes function
f
with provided message payload allocated on stack.