mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 17:01:09 +00:00
contracts: Move Schedule from Storage to Config (#8773)
* Move `Schedule` from Storage to Config * Updated CHANGELOG * Fix nits from review * Fix migration * Print the debug buffer as tracing message * Use `debug` instead of `trace` and update README * Add additional assert to test * Rename `schedule_version` to `instruction_weights_version` * Fixed typo * Added more comments to wat fixtures * Add clarification for the `debug_message` field
This commit is contained in:
committed by
GitHub
parent
3c0270fe57
commit
1ac95b6ba6
@@ -37,18 +37,22 @@ use serde::{Serialize, Deserialize};
|
||||
pub struct ContractResult<T> {
|
||||
/// How much gas was consumed during execution.
|
||||
pub gas_consumed: u64,
|
||||
/// An optional debug message. This message is only non-empty when explicitly requested
|
||||
/// by the code that calls into the contract.
|
||||
/// An optional debug message. This message is only filled when explicitly requested
|
||||
/// by the code that calls into the contract. Otherwise it is empty.
|
||||
///
|
||||
/// The contained bytes are valid UTF-8. This is not declared as `String` because
|
||||
/// this type is not allowed within the runtime. A client should decode them in order
|
||||
/// to present the message to its users.
|
||||
/// this type is not allowed within the runtime.
|
||||
///
|
||||
/// Clients should not make any assumptions about the format of the buffer.
|
||||
/// They should just display it as-is. It is **not** only a collection of log lines
|
||||
/// provided by a contract but a formatted buffer with different sections.
|
||||
///
|
||||
/// # Note
|
||||
///
|
||||
/// The debug message is never generated during on-chain execution. It is reserved for
|
||||
/// RPC calls.
|
||||
pub debug_message: Bytes,
|
||||
#[cfg_attr(feature = "std", serde(with = "as_string"))]
|
||||
pub debug_message: Vec<u8>,
|
||||
/// The execution result of the wasm code.
|
||||
pub result: T,
|
||||
}
|
||||
@@ -146,3 +150,19 @@ pub enum Code<Hash> {
|
||||
/// The code hash of an on-chain wasm blob.
|
||||
Existing(Hash),
|
||||
}
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
mod as_string {
|
||||
use super::*;
|
||||
use serde::{Serializer, Deserializer, ser::Error};
|
||||
|
||||
pub fn serialize<S: Serializer>(bytes: &Vec<u8>, serializer: S) -> Result<S::Ok, S::Error> {
|
||||
std::str::from_utf8(bytes)
|
||||
.map_err(|e| S::Error::custom(format!("Debug buffer contains invalid UTF8: {}", e)))?
|
||||
.serialize(serializer)
|
||||
}
|
||||
|
||||
pub fn deserialize<'de, D: Deserializer<'de>>(deserializer: D) -> Result<Vec<u8>, D::Error> {
|
||||
Ok(String::deserialize(deserializer)?.into_bytes())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user