当前位置: 首页 > news >正文

平度建设局网站山东企业网站建设哪家好

平度建设局网站,山东企业网站建设哪家好,毕业设计论文网站,如何做指数交易网站目录 1. 获取substrate-node-template代码2. 添加一个用于测试的pallet至依赖到pallets目录3. log方式来输出信息3.1 将log依赖添到cargo.toml文件3.2 log-test/src/lib.rs修改call方法 3.3 polkadot.js.调用测试函数do_something_log_test4. printable trait方式来输出信息4.1…

目录

  • 1. 获取substrate-node-template代码
  • 2. 添加一个用于测试的pallet至依赖到pallets目录
  • 3. log方式来输出信息
    • 3.1 将log依赖添到cargo.toml文件
    • 3.2 log-test/src/lib.rs修改call方法
  • 3.3 polkadot.js.调用测试函数do_something_log_test
  • 4. printable trait方式来输出信息
    • 4.1 首选需要将sp_runtime加到[dependencies]
    • 4.2 log-test/src/lib.rs修改代码
    • 4.3 polkadot.js.调用测试函数cause_error
  • 5. 直接使用print方式来输出信息
    • 5.1 log-test/src/lib.rs修改call方法
    • 5.2 polkadot.js.调用测试函数do_something_log_test
  • 6. 使用if_std!方式来输出信息
    • 6.1 log-test/src/lib.rs修改代码
    • 6.2 polkadot.js.调用测试函数do_something_log_test

1. 获取substrate-node-template代码

https://github.com/substrate-developer-hub/substrate-node-template/
获取代码后切换到 polkadot-v0.9.30 (这是一个tag)

2. 添加一个用于测试的pallet至依赖到pallets目录

对于如何添加一个新的pallet中以参照:添加新的pallet
在这里插入图片描述
将template/src/lib.rs的代码copy到log-test/src/lib.rs

3. log方式来输出信息

3.1 将log依赖添到cargo.toml文件

https://crates.io 查看一下可用的版本号
在这里插入图片描述

[dependencies]
......
log={version = "0.4.17", default-features = false }[features]
default = ["std"]
std = [
......
"log/std",
]

3.2 log-test/src/lib.rs修改call方法

使用log::info!来输出调试信息

#[pallet::weight(10_000 + T::DbWeight::get().writes(1).ref_time())]
pub fn do_something_log_test(origin: OriginFor<T>, something: u32) -> DispatchResult {let who = ensure_signed(origin)?;log::info!("do_something_log_test-> accountId={:?}, somthing={:?}", who, something);<Something<T>>::put(something);Self::deposit_event(Event::SomethingStored(something, who));Ok(())
}

编译完成后直接运行:

cargo build
./target/debug/node-template --dev

3.3 polkadot.js.调用测试函数do_something_log_test

https://polkadot.js.org/apps/#/extrinsics
选中LogTestMudule模块下的doSomethingLogTest、输入13579然后提交
在这里插入图片描述
这时在输出屏幕上可以看到如下信息:
在这里插入图片描述

4. printable trait方式来输出信息

4.1 首选需要将sp_runtime加到[dependencies]

[dependencies]
......
sp-runtime = { version = "6.0.0", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }[features]
default = ["std"]
std = [
......
"sp-runtime/std",
]

4.2 log-test/src/lib.rs修改代码

mod pallet中引用Printable

#[frame_support::pallet]
pub mod pallet {use sp_runtime::traits::Printable;use sp_runtime::print;......
}

在Error枚举下方,增加Printable对Error的实现

#[pallet::error]pub enum Error<T> {/// Error names should be descriptive.NoneValue,/// Errors should have helpful documentation associated with them.StorageOverflow,}impl<T: Config> Printable for Error<T> {fn print(&self) {match self {Error::NoneValue => "### Printable for Error is NoneValue!!!".print(),Error::StorageOverflow => "###  Printable for Error is StorageOverflow!!!".print(),_ => "### Printable for Error is Unknow Reason!!!".print(),}}}

修改cause_error方法、让其调用上述的trait

		#[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())]pub fn cause_error(origin: OriginFor<T>) -> DispatchResult {let _who = ensure_signed(origin)?;// Read a value from storage.match <Something<T>>::get() {// Return an error if the value has not been set.None => {print(Error::<T>::NoneValue);return Err(Error::<T>::NoneValue.into())},Some(old) => {// Increment the value read from storage; will error in the event of overflow.let new = old.checked_add(1).ok_or({print(Error::<T>::StorageOverflow);Error::<T>::StorageOverflow})?;// Update the value in storage with the incremented result.<Something<T>>::put(new);Ok(())},}}

编译完成后以debug方式运行:

cargo build
RUST_LOG=runtime=debug ./target/debug/node-template --dev

4.3 polkadot.js.调用测试函数cause_error

在这里插入图片描述
这时在输出屏幕上可以看到如下Debug信息:
在这里插入图片描述

5. 直接使用print方式来输出信息

5.1 log-test/src/lib.rs修改call方法

do_something_log_test来输出调试信息

pub fn do_something_log_test(origin: OriginFor<T>, something: u32) -> DispatchResult {print("### do_something_log_test start...");......
}

编译完成后以debug方式运行:

cargo build
RUST_LOG=runtime=debug ./target/debug/node-template --dev

5.2 polkadot.js.调用测试函数do_something_log_test

在这里插入图片描述
这时在输出屏幕上可以看到如下Debug信息:
在这里插入图片描述

6. 使用if_std!方式来输出信息

6.1 log-test/src/lib.rs修改代码

mod pallet中引用if_std

#[frame_support::pallet]
pub mod pallet {use sp_std::if_std; ......
}

修改do_something_log_test来输出调试信息

	#[pallet::call]impl<T: Config> Pallet<T> {#[pallet::weight(10_000 + T::DbWeight::get().writes(1).ref_time())]pub fn do_something_log_test(origin: OriginFor<T>, something: u32) -> DispatchResult {let who = ensure_signed(origin)?;if_std! {// This code is only being compiled and executed when the `std` feature is enabled.println!("### do_something_log_test Hello native world!");println!("### something value is: {:#?}", something);println!("### The caller account is: {:#?}", who);}<Something<T>>::put(something);Self::deposit_event(Event::SomethingStored(something, who));Ok(())}

编译完成后直接运行:

cargo build
./target/debug/node-template --dev

6.2 polkadot.js.调用测试函数do_something_log_test

在这里插入图片描述
这时在输出屏幕上可以看到如下Debug信息:
在这里插入图片描述

http://www.yayakq.cn/news/863313/

相关文章:

  • 恩平市网站建设搜索引擎营销流程是什么?
  • linux网站架设怎么做毕业网站建设开题报告
  • 苏州高端企业网站建设seo站长工具箱
  • 网站建设的流程推广方案韩国u17出线
  • 管城区-建设局门户网站wordpress会员中心模板下载
  • 汕头高端模板建站科技绘画作品图片大全
  • 网站建设中有关层的使用的步骤有没一些网站只做临床药学
  • 网站建设四个步骤快速建站系统
  • 网站开发主管工作内容菏泽企业做网站
  • 上海房产交易网站WordPress碎语
  • 网站外部优化的4大重点网站视频提取软件app
  • 使用asp.net制作网站的整体过程让网站百度不到
  • 上海黑马网站制作贵阳网站建设费用
  • 智能家居型网站开发中山建设安监站网站
  • 做全网影视网站的风险广州外贸论坛
  • 广州做网站做得比较好最新的网站建设架构
  • 各省网站备案时长wordpress自动清缓存
  • 网站建设与推广推荐一级a做爰片在线看网站
  • 简单大方网站头条站长平台
  • 广元网站建设seo优化营销制作设计高埗镇网站建设
  • 设计高端网站建设wordpress 文章页 模板
  • 福州cms建站网页界面设计ppt(完美版)百度文库
  • 福建seo网站外国做爰网站
  • 上海网站托管韩国互联网公司排名
  • 商洛建设网站中信建设有限责任公司怎么样
  • 免费dedecms企业网站模板设计网站物理结构怎么做
  • 网站制作编辑软件网站建设公司渠道
  • 网站运营的主要工作内容亚马逊如何做折扣网站的营销
  • 河北省建设厅网站6京东网站项目建设规划书
  • 旅游建设投资公司网站怎么样创建一个网站