Add a new host function for reporting fatal errors; make WASM backtraces readable when printing out errors (#10741)

* Add a new host function for reporting fatal errors

* Fix one of the wasmtime executor tests

* Have `#[runtime_interface(wasm_only)]` actually mean WASM-only, and not no_std-only

* Print out errors through `Display` instead of `Debug`

* Switch one more trait to require `Error` for its error instead of only `Debug`

* Align to review comments
This commit is contained in:
Koute authored and GitHub committed 2022-02-09 09:12:55 +00:00
1 parent bd261d57c4
commit 9a31b2c341
68 files changed
+554 -249

No files matched your search

+1 -1
View File
@@ -103,7 +103,7 @@ impl From<Error> for rpc::Error {
Error::Verification(e) => rpc::Error {
code: rpc::ErrorCode::ServerError(VERIFICATION_ERROR),
message: format!("Verification Error: {}", e).into(),
data: Some(format!("{:?}", e).into()),
data: Some(e.to_string().into()),
},
Error::Pool(PoolError::InvalidTransaction(InvalidTransaction::Custom(e))) => rpc::Error {
code: rpc::ErrorCode::ServerError(POOL_INVALID_TX),
+3 -3
View File
@@ -18,11 +18,11 @@
use log::warn;
pub fn internal<E: ::std::fmt::Debug>(e: E) -> jsonrpc_core::Error {
warn!("Unknown error: {:?}", e);
pub fn internal<E: std::fmt::Display>(e: E) -> jsonrpc_core::Error {
warn!("Unknown error: {}", e);
jsonrpc_core::Error {
code: jsonrpc_core::ErrorCode::InternalError,
message: "Unknown error occurred".into(),
data: Some(format!("{:?}", e).into()),
data: Some(e.to_string().into()),
}
}