Selaa lähdekoodia

separated out types

Ayush Suresh 5 kuukautta sitten
vanhempi
sitoutus
ee8778a6b1

+ 2 - 71
target_chains/stylus/contracts/wormhole/src/lib.rs

@@ -11,6 +11,8 @@ fn panic(_info: &core::panic::PanicInfo) -> ! {
     loop {}
 }
 
+mod types;
+use types::{GuardianSet, GuardianSignature, VerifiedVM, WormholeError};
 
 use alloc::{vec, vec::Vec};
 use stylus_sdk::{
@@ -21,77 +23,6 @@ use stylus_sdk::{
 
 use k256::ecdsa::{RecoveryId, Signature, VerifyingKey};
 
-#[derive(Clone, PartialEq, Default)]
-pub struct GuardianSet {
-    pub keys: Vec<Address>,
-    pub expiration_time: u32,
-}
-
-#[derive(Clone)]
-pub struct GuardianSignature {
-    pub guardian_index: u8,
-    pub signature: FixedBytes<65>,
-}
-
-#[derive(Clone)]
-pub struct VerifiedVM {
-    pub version: u8,
-    pub guardian_set_index: u32,
-    pub signatures: Vec<GuardianSignature>,
-    pub timestamp: u32,
-    pub nonce: u32,
-    pub emitter_chain_id: u16,
-    pub emitter_address: FixedBytes<32>,
-    pub sequence: u64,
-    pub consistency_level: u8,
-    pub payload: Vec<u8>,
-    pub hash: FixedBytes<32>,
-}
-
-pub enum WormholeError {
-    InvalidGuardianSetIndex,
-    GuardianSetExpired,
-    NoQuorum,
-    InvalidSignatureOrder,
-    InvalidSignature,
-    InvalidVAAFormat,
-    GovernanceActionConsumed,
-    AlreadyInitialized,
-    NotInitialized,
-    InvalidInput,
-    InsufficientSignatures,
-    InvalidGuardianIndex,
-    InvalidAddressLength,
-    VerifyVAAError,
-}
-
-impl core::fmt::Debug for WormholeError {
-    fn fmt(&self, _: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
-        Ok(())
-    }
-}
-
-impl From<WormholeError> for Vec<u8> {
-    fn from(error: WormholeError) -> Vec<u8> {
-        vec![match error {
-            WormholeError::InvalidGuardianSetIndex => 1,
-            WormholeError::GuardianSetExpired => 2,
-            WormholeError::NoQuorum => 3,
-            WormholeError::InvalidSignatureOrder => 4,
-            WormholeError::InvalidSignature => 5,
-            WormholeError::InvalidVAAFormat => 6,
-            WormholeError::GovernanceActionConsumed => 7,
-            WormholeError::AlreadyInitialized => 8,
-            WormholeError::NotInitialized => 9,
-            WormholeError::InvalidInput => 10,
-            WormholeError::InsufficientSignatures => 11,
-            WormholeError::InvalidGuardianIndex => 12,
-            WormholeError::InvalidAddressLength => 13,
-            WormholeError::VerifyVAAError => 14,
-        }]
-    }
-}
-
 pub trait IWormhole {
     fn parse_and_verify_vm(&self, encoded_vaa: Vec<u8>) -> Result<VerifiedVM, WormholeError>;
     fn get_guardian_set(&self, index: u32) -> Option<GuardianSet>;

+ 73 - 0
target_chains/stylus/contracts/wormhole/src/types.rs

@@ -0,0 +1,73 @@
+use alloc::{vec, vec::Vec};
+use stylus_sdk::alloy_primitives::{Address, FixedBytes};
+
+#[derive(Clone, PartialEq, Default)]
+pub struct GuardianSet {
+    pub keys: Vec<Address>,
+    pub expiration_time: u32,
+}
+
+#[derive(Clone)]
+pub struct GuardianSignature {
+    pub guardian_index: u8,
+    pub signature: FixedBytes<65>,
+}
+
+#[derive(Clone)]
+pub struct VerifiedVM {
+    pub version: u8,
+    pub guardian_set_index: u32,
+    pub signatures: Vec<GuardianSignature>,
+    pub timestamp: u32,
+    pub nonce: u32,
+    pub emitter_chain_id: u16,
+    pub emitter_address: FixedBytes<32>,
+    pub sequence: u64,
+    pub consistency_level: u8,
+    pub payload: Vec<u8>,
+    pub hash: FixedBytes<32>,
+}
+
+pub enum WormholeError {
+    InvalidGuardianSetIndex,
+    GuardianSetExpired,
+    NoQuorum,
+    InvalidSignatureOrder,
+    InvalidSignature,
+    InvalidVAAFormat,
+    GovernanceActionConsumed,
+    AlreadyInitialized,
+    NotInitialized,
+    InvalidInput,
+    InsufficientSignatures,
+    InvalidGuardianIndex,
+    InvalidAddressLength,
+    VerifyVAAError,
+}
+
+impl core::fmt::Debug for WormholeError {
+    fn fmt(&self, _: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+        Ok(())
+    }
+}
+
+impl From<WormholeError> for Vec<u8> {
+    fn from(error: WormholeError) -> Vec<u8> {
+        vec![match error {
+            WormholeError::InvalidGuardianSetIndex => 1,
+            WormholeError::GuardianSetExpired => 2,
+            WormholeError::NoQuorum => 3,
+            WormholeError::InvalidSignatureOrder => 4,
+            WormholeError::InvalidSignature => 5,
+            WormholeError::InvalidVAAFormat => 6,
+            WormholeError::GovernanceActionConsumed => 7,
+            WormholeError::AlreadyInitialized => 8,
+            WormholeError::NotInitialized => 9,
+            WormholeError::InvalidInput => 10,
+            WormholeError::InsufficientSignatures => 11,
+            WormholeError::InvalidGuardianIndex => 12,
+            WormholeError::InvalidAddressLength => 13,
+            WormholeError::VerifyVAAError => 14,
+        }]
+    }
+}