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