28 lines
1.8 KiB
Rust
28 lines
1.8 KiB
Rust
// file: crates/ksp-raw-transaction-lib/src/error.rs
|
|
// version: 2
|
|
|
|
/// Error code used when RAW v1 canonical payload construction cannot preserve the frozen format contract.
|
|
pub const ERROR_CODE_RAW_TRANSACTION_CANONICALIZATION_INVALID: ksp_core_lib::ErrorCode =
|
|
ksp_core_lib::ErrorCode::new("raw_transaction", "canonicalization_invalid");
|
|
/// Error code used when source-neutral RAW transaction material violates a bounded semantic invariant.
|
|
pub const ERROR_CODE_RAW_TRANSACTION_MATERIAL_INVALID: ksp_core_lib::ErrorCode = ksp_core_lib::ErrorCode::new("raw_transaction", "material_invalid");
|
|
/// Error code used when Solana transaction signature material cannot resolve to exactly 64 canonical bytes.
|
|
pub const ERROR_CODE_RAW_TRANSACTION_SIGNATURE_INVALID: ksp_core_lib::ErrorCode = ksp_core_lib::ErrorCode::new("raw_transaction", "signature_invalid");
|
|
|
|
/// Creates a safe canonicalization error without copying source payload material.
|
|
pub(crate) fn canonicalization_error(field: &'static str) -> ksp_core_lib::Error {
|
|
return ksp_core_lib::Error::new(crate::ERROR_CODE_RAW_TRANSACTION_CANONICALIZATION_INVALID, "invalid canonical RAW transaction representation")
|
|
.with_context("field", field);
|
|
}
|
|
|
|
/// Creates a safe source-material error without copying source payload material.
|
|
pub(crate) fn material_error(field: &'static str) -> ksp_core_lib::Error {
|
|
return ksp_core_lib::Error::new(crate::ERROR_CODE_RAW_TRANSACTION_MATERIAL_INVALID, "invalid source-neutral RAW transaction material")
|
|
.with_context("field", field);
|
|
}
|
|
|
|
/// Creates a safe signature error without copying source signature or transaction material.
|
|
pub(crate) fn signature_error() -> ksp_core_lib::Error {
|
|
return ksp_core_lib::Error::new(crate::ERROR_CODE_RAW_TRANSACTION_SIGNATURE_INVALID, "invalid canonical Solana transaction signature");
|
|
}
|