Change serialize hierarchy for Governance
Change-Id: Id5581f84e9d325e1546f1690ba977b7470915491
This commit is contained in:
parent
5e37afdb82
commit
64c1d86e4d
|
@ -151,7 +151,7 @@ pub fn verify_signatures(
|
|||
);
|
||||
|
||||
let signature_set = SignatureSet::<'_, { AccountState::Uninitialized }>::key(
|
||||
&SignatureSetDerivationData { hash: hash },
|
||||
&SignatureSetDerivationData { hash },
|
||||
&program_id,
|
||||
);
|
||||
|
||||
|
|
|
@ -43,8 +43,10 @@ pub use api::{
|
|||
};
|
||||
|
||||
pub use vaa::{
|
||||
DeserializeGovernancePayload,
|
||||
DeserializePayload,
|
||||
PayloadMessage,
|
||||
SerializeGovernancePayload,
|
||||
SerializePayload,
|
||||
};
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use crate::{
|
||||
api::ForeignAddress,
|
||||
vaa::{
|
||||
SerializeGovernancePayload,
|
||||
DeserializeGovernancePayload,
|
||||
DeserializePayload,
|
||||
SerializePayload,
|
||||
|
@ -248,11 +249,14 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl DeserializeGovernancePayload for GovernancePayloadUpgrade {
|
||||
impl SerializeGovernancePayload for GovernancePayloadUpgrade {
|
||||
const MODULE: &'static str = "Core";
|
||||
const ACTION: u8 = 1;
|
||||
}
|
||||
|
||||
impl DeserializeGovernancePayload for GovernancePayloadUpgrade {
|
||||
}
|
||||
|
||||
pub struct GovernancePayloadGuardianSetChange {
|
||||
// New GuardianSetIndex
|
||||
pub new_guardian_set_index: u32,
|
||||
|
@ -298,11 +302,14 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl DeserializeGovernancePayload for GovernancePayloadGuardianSetChange {
|
||||
impl SerializeGovernancePayload for GovernancePayloadGuardianSetChange {
|
||||
const MODULE: &'static str = "Core";
|
||||
const ACTION: u8 = 2;
|
||||
}
|
||||
|
||||
impl DeserializeGovernancePayload for GovernancePayloadGuardianSetChange {
|
||||
}
|
||||
|
||||
pub struct GovernancePayloadSetMessageFee {
|
||||
// New fee in lamports
|
||||
pub fee: U256,
|
||||
|
@ -334,11 +341,14 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl DeserializeGovernancePayload for GovernancePayloadSetMessageFee {
|
||||
impl SerializeGovernancePayload for GovernancePayloadSetMessageFee {
|
||||
const MODULE: &'static str = "Core";
|
||||
const ACTION: u8 = 3;
|
||||
}
|
||||
|
||||
impl DeserializeGovernancePayload for GovernancePayloadSetMessageFee {
|
||||
}
|
||||
|
||||
pub struct GovernancePayloadTransferFees {
|
||||
// Amount to be transferred
|
||||
pub amount: U256,
|
||||
|
@ -376,11 +386,14 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl DeserializeGovernancePayload for GovernancePayloadTransferFees {
|
||||
impl SerializeGovernancePayload for GovernancePayloadTransferFees {
|
||||
const MODULE: &'static str = "Core";
|
||||
const ACTION: u8 = 4;
|
||||
}
|
||||
|
||||
impl DeserializeGovernancePayload for GovernancePayloadTransferFees {
|
||||
}
|
||||
|
||||
#[repr(u8)]
|
||||
#[derive(BorshSerialize, BorshDeserialize, Clone)]
|
||||
pub enum ConsistencyLevel {
|
||||
|
|
|
@ -39,8 +39,24 @@ use std::{
|
|||
ops::Deref,
|
||||
};
|
||||
|
||||
pub trait SerializePayload: Sized + DeserializeGovernancePayload {
|
||||
pub trait SerializePayload: Sized {
|
||||
fn serialize<W: Write>(&self, writer: &mut W) -> std::result::Result<(), SolitaireError>;
|
||||
|
||||
fn try_to_vec(&self) -> std::result::Result<Vec<u8>, SolitaireError> {
|
||||
let mut result = Vec::with_capacity(256);
|
||||
self.serialize(&mut result)?;
|
||||
Ok(result)
|
||||
}
|
||||
}
|
||||
|
||||
pub trait DeserializePayload: Sized {
|
||||
fn deserialize(buf: &mut &[u8]) -> std::result::Result<Self, SolitaireError>;
|
||||
}
|
||||
|
||||
pub trait SerializeGovernancePayload: SerializePayload {
|
||||
const MODULE: &'static str;
|
||||
const ACTION: u8;
|
||||
|
||||
fn try_to_vec(&self) -> std::result::Result<Vec<u8>, SolitaireError> {
|
||||
let mut result = Vec::with_capacity(256);
|
||||
self.write_governance_header(&mut result)?;
|
||||
|
@ -62,14 +78,7 @@ pub trait SerializePayload: Sized + DeserializeGovernancePayload {
|
|||
}
|
||||
}
|
||||
|
||||
pub trait DeserializePayload: Sized {
|
||||
fn deserialize(buf: &mut &[u8]) -> std::result::Result<Self, SolitaireError>;
|
||||
}
|
||||
|
||||
pub trait DeserializeGovernancePayload {
|
||||
const MODULE: &'static str;
|
||||
const ACTION: u8;
|
||||
|
||||
pub trait DeserializeGovernancePayload: DeserializePayload + SerializeGovernancePayload {
|
||||
fn check_governance_header(
|
||||
c: &mut Cursor<&mut &[u8]>,
|
||||
) -> std::result::Result<(), SolitaireError> {
|
||||
|
|
|
@ -83,7 +83,7 @@ use bridge::{
|
|||
Initialize,
|
||||
PostVAA,
|
||||
PostVAAData,
|
||||
SerializePayload,
|
||||
SerializeGovernancePayload,
|
||||
Signature,
|
||||
};
|
||||
use primitive_types::U256;
|
||||
|
|
Loading…
Reference in New Issue