Trait的继承- 探索总结

本文的内容都是临时看到的内容学习的总结,不成条理。

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)
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。