Import Modules
Example Implementation
https://github.com/artfilabs/rewardsv1.git
Add Dependencies
Add the Artinals package to your Move.toml
:
[package]
name = "your_package_name"
edition = "2024.beta"
[dependencies.Sui]
git = "https://github.com/MystenLabs/sui.git"
subdir = "crates/sui-framework/packages/sui-framework"
rev = "framework/testnet"
[dependencies.artinals]
git = "https://github.com/artfilabs/artinalsprotocolv1.git"
rev = "main"
subdir = "."
[addresses]
rewards = "0x0"
[dev-dependencies]
# none
[dev-addresses]
# none
2. Import Modules
In your Move contract, import the required modules:
use artinals::ART20; // For core NFT functionality
use artinals::SALE; // For NFT sales features
use artinals::TRADE; // For trading pool operations
Example Usage:
use artinals::ART20::{Self, NFT, CollectionCap, UserBalance};
Core Features Integration
1. NFT Management (ART20)
module your_package::nft_manager {
use artinals::ART20::{Self, NFT, CollectionCap};
// Create new NFT collection
public entry fun create_collection(
name: vector<u8>,
description: vector<u8>,
initial_supply: u64,
max_supply: u64,
uri: vector<u8>,
logo_uri: vector<u8>,
is_mutable: bool,
has_deny_list_authority: bool,
counter: &mut TokenIdCounter,
ctx: &mut TxContext
) {
ART20::mint_art20(
name, description, initial_supply, max_supply,
uri, logo_uri, is_mutable, has_deny_list_authority,
counter, ctx
);
}
}
2. Sales Integration (SALE)
module your_package::marketplace {
use artinals::SALE;
use artinals::ART20::{NFT, CollectionCap, UserBalance};
// Create NFT sale
public entry fun create_sale<CURRENCY: store>(
nfts: vector<NFT>,
nft_amount: u64,
price_per_nft: u64,
collection_cap: &mut CollectionCap,
sender_balances: vector<UserBalance>,
ctx: &mut TxContext
) {
SALE::create_nft_sale<CURRENCY>(
nfts,
nft_amount,
price_per_nft,
// Additional metadata parameters...
collection_cap,
sender_balances,
ctx
);
}
}
3. Trading Pool Integration (TRADE)
module your_package::trading {
use artinals::TRADE;
use artinals::ART20::{NFT, CollectionCap, UserBalance};
// Create trading pool
public entry fun create_pool<CURRENCY: store>(
collection_pool: &mut TRADE::CollectionPool<CURRENCY>,
collection_cap: &CollectionCap,
initial_nfts: vector<NFT>,
initial_tokens: Coin<CURRENCY>,
user_balance: &mut UserBalance,
fee_percent: u64,
min_price: u64,
max_price: u64,
ctx: &mut TxContext
) {
TRADE::create_pool<CURRENCY>(
collection_pool,
collection_cap,
initial_nfts,
initial_tokens,
user_balance,
fee_percent,
min_price,
max_price,
ctx
);
}
}
Last updated