@@ -949,10 +949,9 @@ impl VerifiedValue {
949949 pub fn verify ( & self ) -> Result < bool > {
950950 // Verify the Merkle proof against the block header's state root
951951 if !self . merkle_proof . verify ( & self . block_header . state_root ) {
952- return Err ( error:: ProofVerificationSnafu {
952+ return Err ( error:: SdkError :: ProofVerification {
953953 reason : "Merkle proof does not match state root" ,
954- }
955- . build ( ) ) ;
954+ } ) ;
956955 }
957956
958957 // If we have a chain proof, that would be verified by the caller
@@ -1316,8 +1315,8 @@ impl LedgerClient {
13161315 let resolver = Arc :: new ( ServerResolver :: new ( source. clone ( ) ) ) ;
13171316
13181317 // Perform initial resolution
1319- let servers = resolver. resolve ( ) . await . map_err ( |e| {
1320- error :: ConfigSnafu { message : format ! ( "Server discovery failed: {e}" ) } . build ( )
1318+ let servers = resolver. resolve ( ) . await . map_err ( |e| error :: SdkError :: Config {
1319+ message : format ! ( "Server discovery failed: {e}" ) ,
13211320 } ) ?;
13221321
13231322 // Convert to endpoint URLs
@@ -2156,35 +2155,32 @@ impl LedgerClient {
21562155 } ,
21572156 proto:: WriteErrorCode :: IdempotencyKeyReused => {
21582157 // Client reused idempotency key with different payload
2159- crate :: error:: IdempotencySnafu {
2158+ Err ( crate :: error:: SdkError :: Idempotency {
21602159 message : format ! (
21612160 "Idempotency key reused with different payload: {}" ,
21622161 error. message
21632162 ) ,
2164- conflict_key : None :: < String > ,
2163+ conflict_key : None ,
21652164 original_tx_id : Some ( Self :: tx_id_to_hex ( error. committed_tx_id . clone ( ) ) ) ,
2166- }
2167- . fail ( )
2165+ } )
21682166 } ,
21692167 _ => {
21702168 // Other write errors (CAS failures, etc.)
2171- crate :: error:: RpcSnafu {
2169+ Err ( crate :: error:: SdkError :: Rpc {
21722170 code : tonic:: Code :: FailedPrecondition ,
21732171 message : error. message ,
2174- request_id : None :: < String > ,
2175- trace_id : None :: < String > ,
2176- }
2177- . fail ( )
2172+ request_id : None ,
2173+ trace_id : None ,
2174+ } )
21782175 } ,
21792176 }
21802177 } ,
2181- None => crate :: error:: RpcSnafu {
2178+ None => Err ( crate :: error:: SdkError :: Rpc {
21822179 code : tonic:: Code :: Internal ,
2183- message : "Empty write response" . to_string ( ) ,
2184- request_id : None :: < String > ,
2185- trace_id : None :: < String > ,
2186- }
2187- . fail ( ) ,
2180+ message : "Empty write response" . to_owned ( ) ,
2181+ request_id : None ,
2182+ trace_id : None ,
2183+ } ) ,
21882184 }
21892185 }
21902186
@@ -2408,35 +2404,32 @@ impl LedgerClient {
24082404 } ,
24092405 proto:: WriteErrorCode :: IdempotencyKeyReused => {
24102406 // Client reused idempotency key with different payload
2411- crate :: error:: IdempotencySnafu {
2407+ Err ( crate :: error:: SdkError :: Idempotency {
24122408 message : format ! (
24132409 "Idempotency key reused with different payload: {}" ,
24142410 error. message
24152411 ) ,
2416- conflict_key : None :: < String > ,
2412+ conflict_key : None ,
24172413 original_tx_id : Some ( Self :: tx_id_to_hex ( error. committed_tx_id . clone ( ) ) ) ,
2418- }
2419- . fail ( )
2414+ } )
24202415 } ,
24212416 _ => {
24222417 // Other write errors (CAS failures, etc.)
2423- crate :: error:: RpcSnafu {
2418+ Err ( crate :: error:: SdkError :: Rpc {
24242419 code : tonic:: Code :: FailedPrecondition ,
24252420 message : error. message ,
2426- request_id : None :: < String > ,
2427- trace_id : None :: < String > ,
2428- }
2429- . fail ( )
2421+ request_id : None ,
2422+ trace_id : None ,
2423+ } )
24302424 } ,
24312425 }
24322426 } ,
2433- None => crate :: error:: RpcSnafu {
2427+ None => Err ( crate :: error:: SdkError :: Rpc {
24342428 code : tonic:: Code :: Internal ,
2435- message : "Empty batch write response" . to_string ( ) ,
2436- request_id : None :: < String > ,
2437- trace_id : None :: < String > ,
2438- }
2439- . fail ( ) ,
2429+ message : "Empty batch write response" . to_owned ( ) ,
2430+ request_id : None ,
2431+ trace_id : None ,
2432+ } ) ,
24402433 }
24412434 }
24422435
@@ -3030,7 +3023,9 @@ impl LedgerClient {
30303023 match result. status {
30313024 HealthStatus :: Healthy => Ok ( true ) ,
30323025 HealthStatus :: Degraded => Ok ( false ) ,
3033- HealthStatus :: Unavailable => error:: UnavailableSnafu { message : result. message } . fail ( ) ,
3026+ HealthStatus :: Unavailable => {
3027+ Err ( error:: SdkError :: Unavailable { message : result. message } )
3028+ } ,
30343029 HealthStatus :: Unspecified => Ok ( false ) ,
30353030 }
30363031 }
0 commit comments