axelar-cgp-sui

Module 0xa6::squid_v0

use 0x1::ascii;
use 0x2::balance;
use 0x2::clock;
use 0x2::coin;
use 0x2::tx_context;
use 0xa1::channel;
use 0xa5::its;
use 0xa6::coin_bag;
use 0xa6::swap_info;
use 0xb0::version_control;

Struct Squid_v0

struct Squid_v0 has store
Fields
channel: channel::Channel
coin_bag: coin_bag::CoinBag
version_control: version_control::VersionControl

Function new

public(friend) fun new(version_control: version_control::VersionControl, ctx: &mut tx_context::TxContext): squid_v0::Squid_v0
Implementation
public(package) fun new(
    version_control: VersionControl,
    ctx: &mut TxContext,
): Squid_v0 {
    Squid_v0 {
        channel: channel::new(ctx),
        coin_bag: coin_bag::new(ctx),
        version_control,
    }
}

Function channel

public(friend) fun channel(self: &squid_v0::Squid_v0): &channel::Channel
Implementation
public(package) fun channel(self: &Squid_v0): &Channel {
    &self.channel
}

Function version_control

public(friend) fun version_control(self: &squid_v0::Squid_v0): &version_control::VersionControl
Implementation
public(package) fun version_control(self: &Squid_v0): &VersionControl {
    &self.version_control
}

Function coin_bag_mut

public(friend) fun coin_bag_mut(self: &mut squid_v0::Squid_v0): &mut coin_bag::CoinBag
Implementation
public(package) fun coin_bag_mut(self: &mut Squid_v0): &mut CoinBag {
    &mut self.coin_bag
}

Function start_swap

public(friend) fun start_swap<T>(self: &squid_v0::Squid_v0, its: &mut its::ITS, approved_message: channel::ApprovedMessage, clock: &clock::Clock, ctx: &mut tx_context::TxContext): swap_info::SwapInfo
Implementation
public(package) fun start_swap<T>(
    self: &Squid_v0,
    its: &mut ITS,
    approved_message: ApprovedMessage,
    clock: &Clock,
    ctx: &mut TxContext,
): SwapInfo {
    let (_, _, data, coin) = its.receive_interchain_transfer_with_data<T>(
        approved_message,
        self.channel(),
        clock,
        ctx,
    );
    let mut swap_info = swap_info::new(data, ctx);
    swap_info.coin_bag().store_estimate<T>(coin.value());
    swap_info.coin_bag().store_balance(coin.into_balance());
    swap_info
}