Skip to content

Commit 2e50f0b

Browse files
committed
serialise vault errors better
1 parent 837e4c2 commit 2e50f0b

File tree

4 files changed

+31
-23
lines changed

4 files changed

+31
-23
lines changed

Cargo.lock

Lines changed: 5 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/src/error.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ pub enum EngineError {
203203

204204
#[schema(title = "Engine Vault KMS Error")]
205205
#[error("Error interaction with vault: {message}")]
206+
#[serde(rename_all = "camelCase")]
206207
VaultError { message: String },
207208

208209
#[schema(title = "RPC Configuration Error")]
@@ -211,6 +212,7 @@ pub enum EngineError {
211212

212213
#[schema(title = "EVM Contract Interaction Error")]
213214
#[error("Contract interaction error: {message}")]
215+
#[serde(rename_all = "camelCase")]
214216
ContractInteractionError {
215217
/// Contract address
216218
#[schema(value_type = Option<AddressDef>)]
@@ -236,6 +238,27 @@ pub enum EngineError {
236238
InternalError { message: String },
237239
}
238240

241+
impl From<vault_sdk::error::VaultError> for EngineError {
242+
fn from(err: vault_sdk::error::VaultError) -> Self {
243+
let message = match &err {
244+
vault_sdk::error::VaultError::EnclaveError {
245+
code,
246+
message,
247+
details,
248+
} => match details {
249+
Some(details) => format!(
250+
"Enclave error: {} - {} - details: {}",
251+
code, message, details
252+
),
253+
None => format!("Enclave error: {} - {}", code, message),
254+
},
255+
_ => err.to_string(),
256+
};
257+
258+
EngineError::VaultError { message }
259+
}
260+
}
261+
239262
impl From<InvalidHeaderValue> for EngineError {
240263
fn from(err: InvalidHeaderValue) -> Self {
241264
EngineError::ValidationError {

core/src/signer.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,7 @@ impl AccountSigner for EoaSigner {
197197
.await
198198
.map_err(|e| {
199199
tracing::error!("Error signing message with EOA: {:?}", e);
200-
EngineError::VaultError {
201-
message: e.to_string(),
202-
}
200+
e
203201
})?;
204202

205203
Ok(vault_result.signature)
@@ -221,9 +219,7 @@ impl AccountSigner for EoaSigner {
221219
.await
222220
.map_err(|e| {
223221
tracing::error!("Error signing typed data with EOA: {:?}", e);
224-
EngineError::VaultError {
225-
message: e.to_string(),
226-
}
222+
e
227223
})?;
228224

229225
Ok(vault_result.signature)

core/src/userop.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,7 @@ impl UserOpSigner {
9494
.await
9595
.map_err(|e| {
9696
tracing::error!("Error signing userop: {:?}", e);
97-
EngineError::VaultError {
98-
message: e.to_string(),
99-
}
97+
e
10098
})?;
10199

102100
Ok(Bytes::from_hex(vault_result.signature).map_err(|_| {

0 commit comments

Comments
 (0)