diff --git a/target_chains/sui/contracts/sources/data_source.move b/target_chains/sui/contracts/sources/data_source.move index c2e90eec93..d4814cd554 100644 --- a/target_chains/sui/contracts/sources/data_source.move +++ b/target_chains/sui/contracts/sources/data_source.move @@ -74,4 +74,12 @@ module pyth::data_source { public fun emitter_address(data_source: &DataSource): ExternalAddress{ data_source.emitter_address } + + #[test_only] + public fun new_data_source_for_test(emitter_chain: u64, emitter_address: ExternalAddress): DataSource { + DataSource { + emitter_chain, + emitter_address, + } + } } diff --git a/target_chains/sui/contracts/sources/price_info.move b/target_chains/sui/contracts/sources/price_info.move index 132921ef7e..8f5cea1346 100644 --- a/target_chains/sui/contracts/sources/price_info.move +++ b/target_chains/sui/contracts/sources/price_info.move @@ -175,6 +175,17 @@ module pyth::price_info { object::delete(id); } + #[test_only] + public fun new_price_info_object_for_test( + price_info: PriceInfo, + ctx: &mut TxContext + ): PriceInfoObject { + PriceInfoObject { + id: object::new(ctx), + price_info + } + } + public fun uid_to_inner(price_info: &PriceInfoObject): ID { object::uid_to_inner(&price_info.id) } diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index a0b8df6833..9381e6457f 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -365,6 +365,31 @@ module pyth::state { sui::dynamic_field::add(&mut self.id, CurrentDigest {}, bytes32::from_bytes(b"new build")); } + #[test_only] + public fun register_price_info_object_for_test(self: &mut State, price_identifier: PriceIdentifier, id: ID) { + price_info::add(&mut self.id, price_identifier, id); + } + + #[test_only] + public fun new_state_for_test( + upgrade_cap: UpgradeCap, + governance_data_source: DataSource, + stale_price_threshold: u64, + base_update_fee: u64, + ctx: &mut TxContext + ): State { + State { + id: object::new(ctx), + upgrade_cap, + governance_data_source, + stale_price_threshold, + base_update_fee, + fee_recipient_address: tx_context::sender(ctx), + last_executed_governance_sequence: 0, + consumed_vaas: consumed_vaas::new(ctx), + } + } + //////////////////////////////////////////////////////////////////////////// // // Deprecated