diff --git a/contracts/crypto-verify/src/contract.rs b/contracts/crypto-verify/src/contract.rs index ea27bf263b..4cc2bd38e2 100644 --- a/contracts/crypto-verify/src/contract.rs +++ b/contracts/crypto-verify/src/contract.rs @@ -76,9 +76,11 @@ pub fn query_verify_tendermint( public_key: &[u8], ) -> StdResult { // Verification - let verifies = deps.api.ed25519_verify(message, signature, public_key); - - Ok(VerifyResponse { verifies }) + let result = deps.api.ed25519_verify(message, signature, public_key); + match result { + Ok(verifies) => Ok(VerifyResponse { verifies }), + Err(err) => Err(err.into()), + } } pub fn query_list_verifications(deps: Deps) -> StdResult { @@ -164,8 +166,7 @@ mod tests { } #[test] - #[should_panic(expected = "empty")] - fn cosmos_signature_verify_panics() { + fn cosmos_signature_verify_errors() { let deps = setup(); let message = hex::decode(SECP256K1_MESSAGE_HEX).unwrap(); @@ -177,7 +178,15 @@ mod tests { signature: Binary(signature), public_key: Binary(public_key), }; - query(deps.as_ref(), mock_env(), verify_msg).unwrap(); + + let res = query(deps.as_ref(), mock_env(), verify_msg); + assert!(res.is_err()); + assert_eq!( + res.unwrap_err(), + StdError::VerificationErr { + source: VerificationError::PublicKeyErr + } + ) } #[test] diff --git a/contracts/crypto-verify/tests/integration.rs b/contracts/crypto-verify/tests/integration.rs index 0b25154280..1b50dbbcb8 100644 --- a/contracts/crypto-verify/tests/integration.rs +++ b/contracts/crypto-verify/tests/integration.rs @@ -99,8 +99,7 @@ fn cosmos_signature_verify_fails() { } #[test] -#[should_panic(expected = "empty")] -fn cosmos_signature_verify_panics() { +fn cosmos_signature_verify_errors() { let mut deps = setup(); let message = hex::decode(SECP256K1_MESSAGE_HEX).unwrap(); @@ -112,7 +111,8 @@ fn cosmos_signature_verify_panics() { signature: Binary(signature), public_key: Binary(public_key), }; - let _ = query(&mut deps, mock_env(), verify_msg).unwrap(); + let res = query(&mut deps, mock_env(), verify_msg); + assert_eq!(res.unwrap_err(), "Verification error: Public key error") } #[test] @@ -158,7 +158,7 @@ fn tendermint_signature_verify_fails() { } #[test] -fn tendermint_signature_verify_errs() { +fn tendermint_signature_verify_errors() { let mut deps = setup(); let message = hex::decode(ED25519_MESSAGE_HEX).unwrap();