0xa6::squid
Squid
init
start_swap
finalize
inner
inner_mut
version
new_version_control
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;
Squid
struct Squid has store, key
id: object::UID
inner: versioned::Versioned
const VERSION: u64 = 0;
init
fun init(ctx: &mut tx_context::TxContext)
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,
),
});
}
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
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)
}
finalize
public fun finalize(swap_info: swap_info::SwapInfo)
inner
public(friend) fun inner(self: &squid::Squid): &versioned::Versioned
inner_mut
public(friend) fun inner_mut(self: &mut squid::Squid): &mut versioned::Versioned
version
public(friend) fun version(): u64
new_version_control
Private ——-
fun new_version_control(): version_control::VersionControl
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()),
])
}