Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#[cfg(test)]
mod test {
use super::*;
use alloy_primitives::address;
use crate::PythReceiver;
use alloy_primitives::{address, U256};
use stylus_sdk::testing::*;

#[test]
Expand All @@ -12,6 +13,40 @@ mod test {
let mut contract = PythReceiver::from(&vm);

let wormhole_address = address!("0x3F38404A2e3Cb949bcDfA19a5C3bDf3fE375fEb0");
let single_update_fee = U256::from(100u64);
let valid_time_period = U256::from(3600u64); // 1 hour

let data_source_chain_ids = vec![1u16, 2u16]; // Ethereum and other chain
let data_source_emitter_addresses = vec![
[1u8; 32], // First emitter address
[2u8; 32], // Second emitter address
];

let governance_chain_id = 1u16;
let governance_emitter_address = [3u8; 32];
let governance_initial_sequence = 0u64;
let data = vec![]; // Empty data for this test

contract.initialize(
wormhole_address,
single_update_fee,
valid_time_period,
data_source_chain_ids.clone(),
data_source_emitter_addresses.clone(),
governance_chain_id,
governance_emitter_address,
governance_initial_sequence,
data,
);

let fee = contract.get_update_fee(vec![]);
assert_eq!(fee, U256::from(0u8)); // Should return 0 as per implementation

let twap_fee = contract.get_twap_update_fee(vec![]);
assert_eq!(twap_fee, U256::from(0u8)); // Should return 0 as per implementation

let test_price_id = [0u8; 32];
let price_result = contract.get_price_unsafe(test_price_id);
assert!(price_result.is_err()); // Should return error for non-existent price
}
}
}