Module bridge::message
- Struct BridgeMessage
- Struct BridgeMessageKey
- Struct TokenTransferPayload
- Struct TokenTransferPayloadV2
- Struct EmergencyOp
- Struct Blocklist
- Struct UpdateBridgeLimit
- Struct UpdateAssetPrice
- Struct AddTokenOnSui
- Struct ParsedTokenTransferMessage
- Constants
- Function extract_token_bridge_payload
- Function extract_token_bridge_payload_v2
- Function to_token_payload_v1
- Function extract_emergency_op_payload
- Function extract_blocklist_payload
- Function extract_update_bridge_limit
- Function extract_update_asset_price
- Function extract_add_tokens_on_sui
- Function serialize_message
- Function create_token_bridge_message
- Function create_token_bridge_message_v2
- Function create_emergency_op_message
- Function create_blocklist_message
- Function create_update_bridge_limit_message
- Function create_update_asset_price_message
- Function create_add_tokens_on_sui_message
- Function create_key
- Function key
- Function message_version
- Function message_type
- Function seq_num
- Function source_chain
- Function payload
- Function token_target_chain
- Function token_target_address
- Function token_type
- Function token_amount
- Function timestamp_ms
- Function emergency_op_type
- Function blocklist_type
- Function blocklist_validator_addresses
- Function update_bridge_limit_payload_sending_chain
- Function update_bridge_limit_payload_receiving_chain
- Function update_bridge_limit_payload_limit
- Function update_asset_price_payload_token_id
- Function update_asset_price_payload_new_price
- Function is_native
- Function token_ids
- Function token_type_names
- Function token_prices
- Function emergency_op_pause
- Function emergency_op_unpause
- Function required_voting_power
- Function to_parsed_token_transfer_message
- Function token_transfer_message_version
- Function reverse_bytes
- Function peel_u64_be
use bridge::chain_ids;
use bridge::message_types;
use std::ascii;
use std::bcs;
use std::option;
use std::string;
use std::vector;
use sui::address;
use sui::bcs;
use sui::hex;
Struct BridgeMessage
public struct BridgeMessage has copy, drop, store
Fields
- message_type: u8
- message_version: u8
- seq_num: u64
- source_chain: u8
- payload: vector<u8>
Struct BridgeMessageKey
public struct BridgeMessageKey has copy, drop, store
Fields
- source_chain: u8
- message_type: u8
- bridge_seq_num: u64
Struct TokenTransferPayload
public struct TokenTransferPayload has drop
Fields
- sender_address: vector<u8>
- target_chain: u8
- target_address: vector<u8>
- token_type: u8
- amount: u64
Struct TokenTransferPayloadV2
public struct TokenTransferPayloadV2 has drop
Fields
- sender_address: vector<u8>
- target_chain: u8
- target_address: vector<u8>
- token_type: u8
- amount: u64
- timestamp_ms: u64
Struct EmergencyOp
public struct EmergencyOp has drop
Fields
- op_type: u8
Struct Blocklist
public struct Blocklist has drop
Fields
- blocklist_type: u8
- validator_eth_addresses: vector<vector<u8>>
Struct UpdateBridgeLimit
public struct UpdateBridgeLimit has drop
Fields
- receiving_chain: u8
- sending_chain: u8
- limit: u64
Struct UpdateAssetPrice
public struct UpdateAssetPrice has drop
Fields
- token_id: u8
- new_price: u64
Struct AddTokenOnSui
public struct AddTokenOnSui has drop
Fields
- native_token: bool
- token_ids: vector<u8>
- token_type_names: vector<std::ascii::String>
- token_prices: vector<u64>
Struct ParsedTokenTransferMessage
public struct ParsedTokenTransferMessage has drop
Fields
- message_version: u8
- seq_num: u64
- source_chain: u8
- payload: vector<u8>
- parsed_payload: bridge::message::TokenTransferPayload
Constants
const CURRENT_MESSAGE_VERSION: u8 = 1;
const TOKEN_TRANSFER_MESSAGE_VERSION_V2: u8 = 2;
const ECDSA_ADDRESS_LENGTH: u64 = 20;
const ETrailingBytes: u64 = 0;
const EInvalidAddressLength: u64 = 1;
const EEmptyList: u64 = 2;
const EInvalidMessageType: u64 = 3;
const EInvalidEmergencyOpType: u64 = 4;
const EInvalidPayloadLength: u64 = 5;
const EMustBeTokenMessage: u64 = 6;
const EInvalidMessageVersion: u64 = 7;
const PAUSE: u8 = 0;
const UNPAUSE: u8 = 1;
Function extract_token_bridge_payload
public fun extract_token_bridge_payload(message: &bridge::message::BridgeMessage): bridge::message::TokenTransferPayload
Function extract_token_bridge_payload_v2
public fun extract_token_bridge_payload_v2(message: &bridge::message::BridgeMessage): bridge::message::TokenTransferPayloadV2
Function to_token_payload_v1
public(package) fun to_token_payload_v1(self: &bridge::message::TokenTransferPayloadV2): bridge::message::TokenTransferPayload
Function extract_emergency_op_payload
Emergency op payload is just a single byte
public fun extract_emergency_op_payload(message: &bridge::message::BridgeMessage): bridge::message::EmergencyOp
Function extract_blocklist_payload
public fun extract_blocklist_payload(message: &bridge::message::BridgeMessage): bridge::message::Blocklist
Function extract_update_bridge_limit
public fun extract_update_bridge_limit(message: &bridge::message::BridgeMessage): bridge::message::UpdateBridgeLimit
Function extract_update_asset_price
public fun extract_update_asset_price(message: &bridge::message::BridgeMessage): bridge::message::UpdateAssetPrice
Function extract_add_tokens_on_sui
public fun extract_add_tokens_on_sui(message: &bridge::message::BridgeMessage): bridge::message::AddTokenOnSui
Function serialize_message
public fun serialize_message(message: bridge::message::BridgeMessage): vector<u8>
Function create_token_bridge_message
Token Transfer Message Format: [message_type: u8] [version:u8] [nonce:u64] [source_chain: u8] [sender_address_length:u8] [sender_address: byte[]] [target_chain:u8] [target_address_length:u8] [target_address: byte[]] [token_type:u8] [amount:u64]
public fun create_token_bridge_message(source_chain: u8, seq_num: u64, sender_address: vector<u8>, target_chain: u8, target_address: vector<u8>, token_type: u8, amount: u64): bridge::message::BridgeMessage
Function create_token_bridge_message_v2
Token Transfer Message Format: [message_type: u8] [version:u8] [nonce:u64] [source_chain: u8] [sender_address_length:u8] [sender_address: byte[]] [target_chain:u8] [target_address_length:u8] [target_address: byte[]] [token_type:u8] [amount:u64] [timestamp:u64]
public fun create_token_bridge_message_v2(source_chain: u8, seq_num: u64, sender_address: vector<u8>, target_chain: u8, target_address: vector<u8>, token_type: u8, amount: u64, timestamp: u64): bridge::message::BridgeMessage
Function create_emergency_op_message
Emergency Op Message Format: [message_type: u8] [version:u8] [nonce:u64] [chain_id: u8] [op_type: u8]
public fun create_emergency_op_message(source_chain: u8, seq_num: u64, op_type: u8): bridge::message::BridgeMessage
Function create_blocklist_message
Blocklist Message Format: [message_type: u8] [version:u8] [nonce:u64] [chain_id: u8] [blocklist_type: u8] [validator_length: u8] [validator_ecdsa_addresses: byte[][]]
public fun create_blocklist_message(source_chain: u8, seq_num: u64, blocklist_type: u8, validator_ecdsa_addresses: vector<vector<u8>>): bridge::message::BridgeMessage
Function create_update_bridge_limit_message
Update bridge limit Message Format: [message_type: u8] [version:u8] [nonce:u64] [receiving_chain_id: u8] [sending_chain_id: u8] [new_limit: u64]
public fun create_update_bridge_limit_message(receiving_chain: u8, seq_num: u64, sending_chain: u8, new_limit: u64): bridge::message::BridgeMessage
Function create_update_asset_price_message
Update asset price message [message_type: u8] [version:u8] [nonce:u64] [chain_id: u8] [token_id: u8] [new_price:u64]
public fun create_update_asset_price_message(token_id: u8, source_chain: u8, seq_num: u64, new_price: u64): bridge::message::BridgeMessage
Function create_add_tokens_on_sui_message
Update Sui token message
[message_type:u8]
[version:u8]
[nonce:u64]
[chain_id: u8]
[native_token:bool]
[token_ids:vector
public fun create_add_tokens_on_sui_message(source_chain: u8, seq_num: u64, native_token: bool, token_ids: vector<u8>, type_names: vector<std::ascii::String>, token_prices: vector<u64>): bridge::message::BridgeMessage
Function create_key
public fun create_key(source_chain: u8, message_type: u8, bridge_seq_num: u64): bridge::message::BridgeMessageKey
Function key
public fun key(self: &bridge::message::BridgeMessage): bridge::message::BridgeMessageKey
Function message_version
public fun message_version(self: &bridge::message::BridgeMessage): u8
Function message_type
public fun message_type(self: &bridge::message::BridgeMessage): u8
Function seq_num
public fun seq_num(self: &bridge::message::BridgeMessage): u64
Function source_chain
public fun source_chain(self: &bridge::message::BridgeMessage): u8
Function payload
public fun payload(self: &bridge::message::BridgeMessage): vector<u8>
Function token_target_chain
public fun token_target_chain(self: &bridge::message::TokenTransferPayload): u8
Function token_target_address
public fun token_target_address(self: &bridge::message::TokenTransferPayload): vector<u8>
Function token_type
public fun token_type(self: &bridge::message::TokenTransferPayload): u8
Function token_amount
public fun token_amount(self: &bridge::message::TokenTransferPayload): u64
Function timestamp_ms
public fun timestamp_ms(self: &bridge::message::TokenTransferPayloadV2): u64
Function emergency_op_type
public fun emergency_op_type(self: &bridge::message::EmergencyOp): u8
Function blocklist_type
public fun blocklist_type(self: &bridge::message::Blocklist): u8
Function blocklist_validator_addresses
public fun blocklist_validator_addresses(self: &bridge::message::Blocklist): &vector<vector<u8>>
Function update_bridge_limit_payload_sending_chain
public fun update_bridge_limit_payload_sending_chain(self: &bridge::message::UpdateBridgeLimit): u8
Function update_bridge_limit_payload_receiving_chain
public fun update_bridge_limit_payload_receiving_chain(self: &bridge::message::UpdateBridgeLimit): u8
Function update_bridge_limit_payload_limit
public fun update_bridge_limit_payload_limit(self: &bridge::message::UpdateBridgeLimit): u64
Function update_asset_price_payload_token_id
public fun update_asset_price_payload_token_id(self: &bridge::message::UpdateAssetPrice): u8
Function update_asset_price_payload_new_price
public fun update_asset_price_payload_new_price(self: &bridge::message::UpdateAssetPrice): u64
Function is_native
public fun is_native(self: &bridge::message::AddTokenOnSui): bool
Function token_ids
public fun token_ids(self: &bridge::message::AddTokenOnSui): vector<u8>
Function token_type_names
public fun token_type_names(self: &bridge::message::AddTokenOnSui): vector<std::ascii::String>
Function token_prices
public fun token_prices(self: &bridge::message::AddTokenOnSui): vector<u64>
Function emergency_op_pause
public fun emergency_op_pause(): u8
Function emergency_op_unpause
public fun emergency_op_unpause(): u8
Function required_voting_power
Return the required signature threshold for the message, values are voting power in the scale of 10000
public fun required_voting_power(self: &bridge::message::BridgeMessage): u64
Function to_parsed_token_transfer_message
public fun to_parsed_token_transfer_message(message: &bridge::message::BridgeMessage): bridge::message::ParsedTokenTransferMessage
Function token_transfer_message_version
public fun token_transfer_message_version(): u8
Function reverse_bytes
fun reverse_bytes(bytes: vector<u8>): vector<u8>
Function peel_u64_be
fun peel_u64_be(bcs: &mut sui::bcs::BCS): u64