本文的内容都是临时看到的内容学习的总结,不成条理。
1- 自定义nfts.rs的文件包含如下定义
pub trait Trait: system::Trait {
type NFTIndex: Parameter + Member + Default + SimpleArithmetic + Bounded + Copy;
}
2-kitties继承nfts的Trait
pub trait Trait: nfts::Trait {
type Event: From<Event<Self>> + Into<<Self as system::Trait>::Event>;
type Currency: Currency<Self::AccountId>;
}
3- nfts.rs中的变量的使用
- 系统 <T as system::Trait>::AccountId
- 自定义 <T as nfts::Trait>::NFTIndex
4- nfts中Moudle中的函数的调用
- <nfts::Module<T>>::mint(&sender, dna, lifetime)
5- nfts的Moudle中的函数定义
impl<T: Trait> Module<T> {
pub fn mint(
sender: &T::AccountId,
token_id: NFTokenId,
lifetime: u64,
) -> result::Result<T::NFTIndex, &'static str> {
let nft_index = Self::next_nft_index()?;
let nft = NFToken { token_id, lifetime };
Self::insert_nft(&sender, nft_index, nft);
Ok(nft_index)
}