axelar-cgp-sui

Module 0xa1::message_ticket

use 0x1::ascii;

Struct MessageTicket

This hot potato object is created to capture all the information about a remote contract call. In can then be submitted to the gateway to send the Message. It is advised that modules return this Message ticket to be submitted by the frontend, so that when the gateway package is upgraded, the app doesn’t need to upgrade as well, ensuring forward compatibility. The version is captured to ensure that future packages can restrict which messages they can send, and to ensure that no future messages are sent from earlier versions.

struct MessageTicket
Fields
source_id: address
destination_chain: ascii::String
destination_address: ascii::String
payload: vector<u8>
version: u64

Function source_id

public fun source_id(self: &message_ticket::MessageTicket): address
Implementation
public fun source_id(self: &MessageTicket): address {
    self.source_id
}

Function destination_chain

public fun destination_chain(self: &message_ticket::MessageTicket): ascii::String
Implementation
public fun destination_chain(self: &MessageTicket): String {
    self.destination_chain
}

Function destination_address

public fun destination_address(self: &message_ticket::MessageTicket): ascii::String
Implementation
public fun destination_address(self: &MessageTicket): String {
    self.destination_address
}

Function payload

public fun payload(self: &message_ticket::MessageTicket): vector<u8>
Implementation
public fun payload(self: &MessageTicket): vector<u8> {
    self.payload
}

Function version

public fun version(self: &message_ticket::MessageTicket): u64
Implementation
public fun version(self: &MessageTicket): u64 {
    self.version
}

Function new

public(friend) fun new(source_id: address, destination_chain: ascii::String, destination_address: ascii::String, payload: vector<u8>, version: u64): message_ticket::MessageTicket
Implementation
public(package) fun new(
    source_id: address,
    destination_chain: String,
    destination_address: String,
    payload: vector<u8>,
    version: u64,
): MessageTicket {
    MessageTicket {
        source_id,
        destination_chain,
        destination_address,
        payload,
        version,
    }
}

Function destroy

public(friend) fun destroy(self: message_ticket::MessageTicket): (address, ascii::String, ascii::String, vector<u8>, u64)
Implementation
public(package) fun destroy(
    self: MessageTicket,
): (address, String, String, vector<u8>, u64) {
    let MessageTicket {
        source_id,
        destination_chain,
        destination_address,
        payload,
        version,
    } = self;
    (source_id, destination_chain, destination_address, payload, version)
}