mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 18:41:03 +00:00
Use the log crate to output contract generated messages. (#8403)
This commit is contained in:
committed by
GitHub
parent
4fd69de38e
commit
998d190ea0
@@ -57,4 +57,19 @@ will make things a lot easier. One such language is [`ink`](https://github.com/p
|
|||||||
which is an [`eDSL`](https://wiki.haskell.org/Embedded_domain_specific_language) that enables
|
which is an [`eDSL`](https://wiki.haskell.org/Embedded_domain_specific_language) that enables
|
||||||
writing WebAssembly based smart contracts in the Rust programming language.
|
writing WebAssembly based smart contracts in the Rust programming language.
|
||||||
|
|
||||||
|
## Debugging
|
||||||
|
|
||||||
|
Contracts can emit messages to the node console when run on a development chain through the
|
||||||
|
`seal_println` API. This is exposed in ink! via
|
||||||
|
[`ink_env::debug_println()`](https://docs.rs/ink_env/latest/ink_env/fn.debug_println.html).
|
||||||
|
|
||||||
|
In order to see these messages the log level for the `runtime::contracts` target needs to be raised
|
||||||
|
to at least the `info` level which is the default. However, those messages are easy to overlook
|
||||||
|
because of the noise generated by block production. A good starting point for contract debugging
|
||||||
|
could be:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo run --release -- --dev --tmp -lerror,runtime::contracts
|
||||||
|
```
|
||||||
|
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
|
|||||||
@@ -1366,7 +1366,7 @@ define_env!(Env, <E: Ext>,
|
|||||||
seal_println(ctx, str_ptr: u32, str_len: u32) => {
|
seal_println(ctx, str_ptr: u32, str_len: u32) => {
|
||||||
let data = ctx.read_sandbox_memory(str_ptr, str_len)?;
|
let data = ctx.read_sandbox_memory(str_ptr, str_len)?;
|
||||||
if let Ok(utf8) = core::str::from_utf8(&data) {
|
if let Ok(utf8) = core::str::from_utf8(&data) {
|
||||||
sp_runtime::print(utf8);
|
log::info!(target: "runtime::contracts", "seal_println: {}", utf8);
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user