#[derive(Debug, thiserror::Error)]
pub enum ContractError
where T: Intocrate::BaseError
{
InvalidArgument(/.../),
InvalidContractState(/.../),
PermissionDenied(/.../),
// ...
#[error("{}", serde_json::json!(.0.into()))]
Other(T), //
}
#1165 (comment)