axelar-cgp-sui

Module 0xa6::squid

use 0x1::ascii;
use 0x1::vector;
use 0x2::clock;
use 0x2::object;
use 0x2::transfer;
use 0x2::tx_context;
use 0x2::versioned;
use 0xa1::channel;
use 0xa5::its;
use 0xa6::squid_v0;
use 0xa6::swap_info;
use 0xb0::version_control;

Resource Squid

struct Squid has store, key
Fields
id: object::UID
inner: versioned::Versioned

Constants

const VERSION: u64 = 0;

Function init

fun init(ctx: &mut tx_context::TxContext)
Implementation
fun init(ctx: &mut TxContext) {
    transfer::share_object(Squid {
        id: object::new(ctx),
        inner: versioned::create(
            VERSION,
            squid_v0::new(
                new_version_control(),
                ctx,
            ),
            ctx,
        ),
    });
}

Function start_swap

public fun start_swap<T>(self: &mut squid::Squid, its: &mut its::ITS, approved_message: channel::ApprovedMessage, clock: &clock::Clock, ctx: &mut tx_context::TxContext): swap_info::SwapInfo
Implementation
public fun start_swap<T>(
    self: &mut Squid,
    its: &mut ITS,
    approved_message: ApprovedMessage,
    clock: &Clock,
    ctx: &mut TxContext,
): SwapInfo {
    self
        .value_mut!(b"start_swap")
        .start_swap<T>(its, approved_message, clock, ctx)
}

Function finalize

public fun finalize(swap_info: swap_info::SwapInfo)
Implementation
public fun finalize(swap_info: SwapInfo) {
    swap_info.finalize();
}

Function inner

public(friend) fun inner(self: &squid::Squid): &versioned::Versioned
Implementation
public(package) fun inner(self: &Squid): &Versioned {
    &self.inner
}

Function inner_mut

public(friend) fun inner_mut(self: &mut squid::Squid): &mut versioned::Versioned
Implementation
public(package) fun inner_mut(self: &mut Squid): &mut Versioned {
    &mut self.inner
}

Function version

public(friend) fun version(): u64
Implementation
public(package) fun version(): u64 {
    VERSION
}

Function new_version_control


Private ——-

fun new_version_control(): version_control::VersionControl
Implementation
fun new_version_control(): VersionControl {
    version_control::new(vector[
        // Version 0
        vector[
            b"start_swap",
            b"its_transfer",
            b"deepbook_v3_swap",
            b"register_transaction",
        ].map!(|function_name| function_name.to_ascii_string()),
    ])
}