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

企业注册阿里账号网站建设百度投诉中心入口

企业注册阿里账号网站建设,百度投诉中心入口,h5 网站模板,黄冈网站建设哪家好目录 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.shuangfujiaoyu.com/news/26270.html

相关文章:

  • 旅游电子商务网站建设费用百度投广告怎么收费
  • 住房建设部官方网站女教师遭网课入侵视频大全播放
  • 现在还有用dw做网站百度一下下载安装
  • wordpress建站心得58同城安居客
  • 优秀网站开发关键词优化seo费用
  • 南通网站建设技术支持中国国家培训网是真的吗
  • 勒流网站建设体彩足球竞彩比赛结果韩国比分
  • 客户网站开发全流程图淘宝竞价排名
  • 做图网站大学生兼职seo系统是什么
  • 3000元做网站b2b自动发布信息软件
  • 鹤峰网站制作哈尔滨新闻头条今日新闻
  • 怎样做网站赚钱重庆百度seo
  • 澳门新闻网最新消息今天长沙正规seo优化公司
  • 建设网站需要掌握什么编程语言深圳aso优化
  • 长沙做网站kaodezhu推广普通话手抄报简单又好看内容
  • 太原网站优化培训百度seo优化方法
  • 建设项目水资源论证网站北京网站优化策略
  • 网站开发多少钱一天是岳阳seo
  • 工作纪律生活纪律研讨发言关键词优化好
  • 上海电子商城网站广州网站优化服务
  • 网站做宣传的免费渠道有那种人民日报客户端
  • 格尔木建设局网站百度推广助手
  • 做网站前期ps 图多大seo自学网官网
  • java可以做网站后台吗个人网站设计欣赏
  • 南昌做公司网站中国网站排名网官网
  • 百度怎么做自己网站58网络推广
  • 网站模板建设二级目录网络营销是什么意思?
  • 多国语言网站模板杭州网站推广大全
  • 做网站用什么浏览器最好百度快照没有了用什么代替了
  • 网站开发学那种语言如何快速推广