use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
pub(crate) enum VerificationStatus {
Failed,
Pending,
Verified,
Waiting,
}
#[derive(Deserialize, Serialize)]
#[non_exhaustive]
pub(crate) enum VerificationErrorCode {
Ok,
None,
BytecodeMismatch,
BuildError,
ContractAlreadyVerified,
ContractNotFound,
Internal,
InvalidContract,
InvalidHash,
WrongCodeArchive,
}
#[derive(Deserialize, Serialize)]
pub(crate) struct VerificationError {
pub(crate) code: VerificationErrorCode,
pub(crate) description: String,
}
#[derive(Serialize)]
pub(crate) struct VerificationRequest {
pub(crate) hash: String,
pub(crate) code_archive: String,
}
#[derive(Deserialize, Serialize)]
pub(crate) struct VerificationResult {
pub(crate) status: VerificationStatus,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) error: Option<VerificationError>,
}
#[derive(Deserialize, Serialize)]
pub(crate) struct VerificationDetailsResult {
pub(crate) binary_uri: String,
pub(crate) logs_uri: String,
}
#[derive(Deserialize, Serialize)]
pub struct VerificationDetails {
pub(crate) status: VerificationStatus,
pub(crate) result: VerificationDetailsResult,
}