NFT链游项目系统开发技术方案丨NFT链游铸造定制开发技术

简介: NFT链游项目系统开发技术方案丨NFT链游铸造定制开发技术

可调度项、事件和错误

在本教程的上一节中,我们奠定了旨在管理小猫的所有权的基础 - 即使它们还不存在!在这一部分中,我们将通过使用我们声明的存储项目使我们的托盘能够创建Kitty来使用这些基础。稍微分解一下,我们将写:

create_kitty:一个可调度或可公开调用的函数,允许帐户铸造Kitty。
mint():一个辅助功能,用于更新托的存储项目并执行错误检查,由 调用。create_kitty
pallet Events: 使用 FRAME的#[pallet::event] 属性。
在本部分结束时,我们将检查所有内容是否编译无误,并使用外部PolkadotJS 应用程序 UI 调用我们的 create_kitty 。

公共和私人功能
在我们深入研究之前,了解我们将围绕 Kitty pallet的铸币和所有权管理功能进行编码的pallet设计决策是非常重要。

作为开发人员,我们希望确保我们编写的代码高效且优雅。 通常,针对一个进行优化会针对另一个进行优化。 我们将设置pallet以优化两者的方式是将“繁重”逻辑分解为私有辅助函数。 这也提高了代码的可读性和可重用性。 正如我们将看到的,我们可以创建可以由多个可调度函数调用的私有函数,而不会影响安全性。 事实上,以这种方式构建可以被认为是一种附加的安全功能。 查看这个关于编写和使用辅助函数的操作指南以了解更多信息。

在开始实施这种方法之前,让我们首先描绘一下组合可调度和辅助函数的样子。

create_kitty是一个可调度的功能或外在功能::

检查源是否已签名
使用签名帐户生成随机哈希
使用随机哈希创建新的 Kitty 对象
调用私有函数mint()
mint是一个私有助手函数,它:

检查小猫咪是否不存在
使用新的 Kitty ID 更新存储(适用于所有 Kitty 和所有者的帐户)
更新存储和新所有者帐户的新小猫总数
存入一个事件,以指示已成功创建小猫
编写可调度create_kitty
FRAME 中的可调度始终遵循相同的结构。 所有的pallet dispatchable 都存在于#[pallet::call] 宏下,该宏需要使用impl<T: Config> Pallet {} 声明dispatchables 部分。 阅读有关这些 FRAME 宏的文档以了解它们的工作原理。 这里我们需要知道的是,它们是 FRAME 的一个有用功能,可以最大限度地减少为将pallet正确集成到 Substrate 链的runtime所需编写的代码。

权重
根据其文档中描述的#[pallet::call] 的要求,每个可调度函数都必须具有关联的权重。 权重是使用 Substrate 开发的重要部分,因为它们提供了围绕计算量的安全防护,以在执行时适合块。

Substrate 的加权系统迫使开发人员在调用每个外部函数之前考虑其计算复杂性。 这允许节点考虑最坏情况的执行时间,避免因外部因素导致网络滞后,这些外部因素可能需要比指定的块时间更长的时间。 权重也与任何已签名外在的收费系统密切相关。

由于这只是一个教程,我们将默认所有权重为 100 以保持简单。

假设您现在已经用本节的帮助文件替换了pallets/kitties/src/lib.rs 的内容,找到ACTION #1 并使用以下行完成函数的开头:

[pallet::weight(100)]

pub fn create_kitty(origin: OriginFor) -> DispatchResult {

let sender = ensure_signed(origin)?; // <- add this line
let kitty_id = Self::mint(&sender, None, None)?; // <- add this line
// Logging to the console
log::info!("A kitty is born with ID: {:?}.", kitty_id); // <- add this line

// ACTION #4: Deposit `Created` event

Ok(())
AI 代码解读

}
我们不会进行调试,但登录到控制台是一个有用的提示,可确保您的托盘按预期运行。 为了使用 log::info,将其添加到您的托盘的 Cargo.toml 文件中。

目录
打赏
0
0
0
0
16
分享
相关文章
NFT+DeFi链游系统开发技术
DeFi——区块链行业火热的概念之一,从 2020 年初 7 亿美元的总锁仓量一路飙升到了目前的 1216.6 亿美元,不到一年半的时间,总锁仓量扩大了 170 多倍。目前已经超过了德意志银行的资产总量。 什么是 DeFi? 让用户在无需依靠中心化机构的情况下,通过部署在智能合约平台上的去中心化应用(Dapp)完成一系列金融服务
NFT链游系统开发(详细 及案例)丨NFT链游系统开发(区块链游戏开发源码)
  以区块链为核心的数字科技可以推动信息技术服务,从而促进数字产业化;元宇宙可以创造和创新更广泛的应用场景,拉动信息消费促进产业数字化。因此,以区块链为核心的Web3.0技术体系推动形成的元宇宙数字生态,将对数字产业化和产业数字化提供有力支撑,为数字经济高质量发展打造新引擎。
NFT盲盒系统开发链游搭建技术
  合约刚刚部署/创建的时候,合约的数据里面是没有token的,创建一个token的过程就是mint,其实就是在数据库里面新增了一条数据。一般是用户支付给合约一笔钱然后合约生成一个token并且把owner设置成这个用户。
NFT盲盒系统开发链游搭建技术
NFT元宇宙链游系统开发(开发原理)丨NFT元宇宙链游系统开发(方案及源码)
 NFT将成为元宇宙的关键基础设施,元界悔成为NFT最实出的应用,NFT的独特性和可替代性将为现实世界中的人类沉浸在元宇宙中提供可靠的墓础元宇宙是线上线下世界的融合,物理与电子相结合的方式。元宇宙为虚拟世界深入现实世界铺平了道路,无论是从虛拟到现实,还是从现实到虛拟,都致力于为用户提供更真实的体验。
nft链游系统开发
链游就是指区块链技术上运作的手机游戏,使游戏玩家第一次变成手机游戏真正的主人。
318 0
nft链游系统开发
NFT链游系统开发
NFT通过向玩家提供可证明资产所有权,并分散传统游戏运营商的权力,从而真正实现游戏资产的稀缺性。 而游戏资产的金融化,也极大促进了游戏资产在二级市场上的自由交易,从而提高玩家在游戏资产市场的创收潜力。
NFT链游系统开发
NFT链游系统开发DAPP技术分析
一个NFT是一个token/凭证,有唯一的id和owner以及关联的其他数据,目前有经济价值的NFT项目的发行方式主要分两种形式
NFT链游系统开发DAPP技术分析
NFT交易平台系统开发NFT链游编程技术
JavaScript和Solidity以及JSON等格式对于创建智能合约和与区块链交互非常重要。它们对于了解各种Web3工具和中间件平台(如Moralis)的作用也是必要的,它们将帮助您优化构建。
NFT交易平台系统开发NFT链游编程技术
NFT链游系统开发的解决方案(币安英雄系统开发)
互联网的普及让手游成为了新的焦点,许多好的手游能创造出更大的价值,但传统手游的虚拟装备是不能交易的,这让玩家的体验感没能更好的体现出来,NFT开发的链游打造的是可交易的平台,优化了玩家不能交易装备的弊端。 NFT是区块链技术发展的产物,要想做好交易首先要解决的就是信任问题,同属与区块链技术开发下的dapp能为交易提供智能合约,买卖在符合条件的情况下才可以进行,打破的不止是信任,还可以让交易变得简易、安全。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等