Module 0x7::native_collateral

Native collateral storage, keyed by (exchange, account, scope). Write API is set_collateral / delete_collateral, gated by a TradingNativeCapability (re-checked via assert_valid on every call). Native state is read only on the validator side (Rust), never from Move.

use 0x7::native_collateral_types;
use 0x7::trading_native_capability;

Function set_collateral

Set the collateral at (exchange, account, scope). exchange is derived from the cap; every call re-checks the cap via assert_valid.

public fun set_collateral(cap: &trading_native_capability::TradingNativeCapability, account: address, scope: native_collateral_types::CollateralScope, collateral: native_collateral_types::Collateral)
Implementation
public fun set_collateral(
    cap: &TradingNativeCapability,
    account: address,
    scope: CollateralScope,
    collateral: Collateral,
) {
    trading_native_capability::assert_valid(cap);
    native_set_collateral(trading_native_capability::exchange(cap), account, scope, collateral);
}

Function delete_collateral

Delete the collateral at (exchange, account, scope).

public fun delete_collateral(cap: &trading_native_capability::TradingNativeCapability, account: address, scope: native_collateral_types::CollateralScope)
Implementation
public fun delete_collateral(
    cap: &TradingNativeCapability,
    account: address,
    scope: CollateralScope,
) {
    trading_native_capability::assert_valid(cap);
    native_delete_collateral(trading_native_capability::exchange(cap), account, scope);
}

Function native_set_collateral

fun native_set_collateral(exchange: address, account: address, scope: native_collateral_types::CollateralScope, collateral: native_collateral_types::Collateral)
Implementation
native fun native_set_collateral(
    exchange: address,
    account: address,
    scope: CollateralScope,
    collateral: Collateral,
);

Function native_delete_collateral

fun native_delete_collateral(exchange: address, account: address, scope: native_collateral_types::CollateralScope)
Implementation
native fun native_delete_collateral(
    exchange: address,
    account: address,
    scope: CollateralScope,
);