Commom Integration Patterns

Collection Management

Initialize collection with deny list
public entry fun init_collection(
    collection_cap: &mut CollectionCap,
    ctx: &mut TxContext
) {
    ART20::initialize_deny_list(collection_cap, ctx);
}

// Update collection metadata
public entry fun update_collection(
    collection_cap: &mut CollectionCap,
    new_uri: vector<u8>,
    ctx: &mut TxContext
) {
    // Your update logic here
}

2. NFT Trading

Implement NFT purchase
public entry fun purchase_nft<CURRENCY: store>(
    sale: &mut SALE::NFTSale<CURRENCY>,
    payment: Coin<CURRENCY>,
    asset_ids: vector<u64>,
    collection_cap: &CollectionCap,
    ctx: &mut TxContext
) {
    SALE::purchase_nfts(
        sale,
        payment,
        asset_ids,
        collection_cap,
        ctx
    );
}

3. Liquidity Pool Operations

Add liquidity to pool
public entry fun add_pool_liquidity<CURRENCY: store>(
    collection_pool: &mut TRADE::CollectionPool<CURRENCY>,
    pool: &mut TRADE::TradingPool<CURRENCY>,
    nfts: vector<NFT>,
    tokens: Coin<CURRENCY>,
    user_balance: &mut UserBalance,
    min_lp_tokens: u64,
    ctx: &mut TxContext
) {
    TRADE::add_liquidity(
        collection_pool,
        pool,
        nfts,
        tokens,
        user_balance,
        min_lp_tokens,
        ctx
    );
}

Last updated