Cleanup
This commit is contained in:
parent
a2dabb97cf
commit
40d7b6d679
|
@ -109,8 +109,8 @@ pub fn create_accumulator_message(
|
|||
price_updates,
|
||||
tree,
|
||||
corrupt_wormhole_message,
|
||||
DEFAULT_DATA_SOURCE.address.0,
|
||||
DEFAULT_DATA_SOURCE.chain.into(),
|
||||
DEFAULT_DATA_SOURCE.address,
|
||||
DEFAULT_DATA_SOURCE.chain,
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -118,8 +118,8 @@ pub fn create_accumulator_message_from_updates(
|
|||
price_updates: Vec<MerklePriceUpdate>,
|
||||
tree: MerkleTree<Keccak160>,
|
||||
corrupt_wormhole_message: bool,
|
||||
emitter_address: [u8; 32],
|
||||
emitter_chain: u16,
|
||||
emitter_address: Address,
|
||||
emitter_chain: Chain,
|
||||
) -> Vec<u8> {
|
||||
let mut root_hash = [0u8; 20];
|
||||
root_hash.copy_from_slice(&to_vec::<_, BigEndian>(&tree.root).unwrap()[..20]);
|
||||
|
@ -151,13 +151,13 @@ pub fn create_accumulator_message_from_updates(
|
|||
|
||||
pub fn create_vaa_from_payload(
|
||||
payload: &[u8],
|
||||
emitter_address: [u8; 32],
|
||||
emitter_chain: u16,
|
||||
emitter_address: Address,
|
||||
emitter_chain: Chain,
|
||||
sequence: u64,
|
||||
) -> Vaa<Box<RawMessage>> {
|
||||
let vaa: Vaa<Box<RawMessage>> = Vaa {
|
||||
emitter_chain: Chain::from(emitter_chain),
|
||||
emitter_address: Address(emitter_address),
|
||||
emitter_chain: emitter_chain,
|
||||
emitter_address: emitter_address,
|
||||
sequence,
|
||||
payload: <Box<RawMessage>>::from(payload.to_vec()),
|
||||
..Default::default()
|
||||
|
|
|
@ -856,7 +856,11 @@ mod test {
|
|||
},
|
||||
serde_wormhole::RawMessage,
|
||||
std::time::Duration,
|
||||
wormhole_sdk::Vaa,
|
||||
wormhole_sdk::{
|
||||
Address,
|
||||
Chain,
|
||||
Vaa,
|
||||
},
|
||||
};
|
||||
|
||||
/// Default valid time period for testing purposes.
|
||||
|
@ -926,8 +930,8 @@ mod test {
|
|||
}
|
||||
|
||||
fn create_batch_price_update_msg(
|
||||
emitter_address: [u8; 32],
|
||||
emitter_chain: u16,
|
||||
emitter_address: Address,
|
||||
emitter_chain: Chain,
|
||||
attestations: Vec<PriceAttestation>,
|
||||
) -> Binary {
|
||||
let batch_attestation = BatchPriceAttestation {
|
||||
|
@ -947,8 +951,8 @@ mod test {
|
|||
attestations: Vec<PriceAttestation>,
|
||||
) -> Binary {
|
||||
create_batch_price_update_msg(
|
||||
DEFAULT_DATA_SOURCE.address.0,
|
||||
DEFAULT_DATA_SOURCE.chain.into(),
|
||||
DEFAULT_DATA_SOURCE.address,
|
||||
DEFAULT_DATA_SOURCE.chain,
|
||||
attestations,
|
||||
)
|
||||
}
|
||||
|
@ -1003,8 +1007,8 @@ mod test {
|
|||
|
||||
fn apply_price_update(
|
||||
config_info: &ConfigInfo,
|
||||
emitter_address: [u8; 32],
|
||||
emitter_chain: u16,
|
||||
emitter_address: Address,
|
||||
emitter_chain: Chain,
|
||||
attestations: Vec<PriceAttestation>,
|
||||
) -> StdResult<(usize, Vec<PriceFeed>)> {
|
||||
let (mut deps, env) = setup_test();
|
||||
|
@ -1159,8 +1163,8 @@ mod test {
|
|||
fn test_parse_batch_attestation_empty_array() {
|
||||
let (num_attestations, new_attestations) = apply_price_update(
|
||||
&default_config_info(),
|
||||
DEFAULT_DATA_SOURCE.address.0,
|
||||
DEFAULT_DATA_SOURCE.chain.into(),
|
||||
DEFAULT_DATA_SOURCE.address,
|
||||
DEFAULT_DATA_SOURCE.chain,
|
||||
vec![],
|
||||
)
|
||||
.unwrap();
|
||||
|
@ -1191,7 +1195,7 @@ mod test {
|
|||
};
|
||||
}
|
||||
|
||||
fn test_accumulator_wrong_source(emitter_address: [u8; 32], emitter_chain: u16) {
|
||||
fn test_accumulator_wrong_source(emitter_address: Address, emitter_chain: Chain) {
|
||||
let (mut deps, env) = setup_test();
|
||||
config(&mut deps.storage)
|
||||
.save(&default_config_info())
|
||||
|
@ -1221,12 +1225,12 @@ mod test {
|
|||
|
||||
#[test]
|
||||
fn test_accumulator_verify_vaa_sender_fail_wrong_emitter_address() {
|
||||
test_accumulator_wrong_source(WRONG_SOURCE.address.0, DEFAULT_DATA_SOURCE.chain.into());
|
||||
test_accumulator_wrong_source(WRONG_SOURCE.address, DEFAULT_DATA_SOURCE.chain);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_accumulator_verify_vaa_sender_fail_wrong_emitter_chain() {
|
||||
test_accumulator_wrong_source(DEFAULT_DATA_SOURCE.address.0, WRONG_SOURCE.chain.into());
|
||||
test_accumulator_wrong_source(DEFAULT_DATA_SOURCE.address, WRONG_SOURCE.chain);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -1476,8 +1480,8 @@ mod test {
|
|||
price_updates,
|
||||
tree,
|
||||
false,
|
||||
DEFAULT_DATA_SOURCE.address.0,
|
||||
DEFAULT_DATA_SOURCE.chain.into(),
|
||||
DEFAULT_DATA_SOURCE.address,
|
||||
DEFAULT_DATA_SOURCE.chain,
|
||||
);
|
||||
let info = mock_info("123", &[]);
|
||||
let result = update_price_feeds(deps.as_mut(), env, info, &[msg.into()]);
|
||||
|
@ -1510,8 +1514,8 @@ mod test {
|
|||
price_updates,
|
||||
tree,
|
||||
false,
|
||||
DEFAULT_DATA_SOURCE.address.0,
|
||||
DEFAULT_DATA_SOURCE.chain.into(),
|
||||
DEFAULT_DATA_SOURCE.address,
|
||||
DEFAULT_DATA_SOURCE.chain,
|
||||
);
|
||||
let info = mock_info("123", &[]);
|
||||
let result = update_price_feeds(deps.as_mut(), env, info, &[msg.into()]);
|
||||
|
@ -1695,8 +1699,8 @@ mod test {
|
|||
fn test_verify_vaa_sender_ok() {
|
||||
let result = apply_price_update(
|
||||
&default_config_info(),
|
||||
DEFAULT_DATA_SOURCE.address.0,
|
||||
DEFAULT_DATA_SOURCE.chain.into(),
|
||||
DEFAULT_DATA_SOURCE.address,
|
||||
DEFAULT_DATA_SOURCE.chain,
|
||||
vec![PriceAttestation::default()],
|
||||
);
|
||||
assert!(result.is_ok());
|
||||
|
@ -1706,8 +1710,8 @@ mod test {
|
|||
fn test_verify_vaa_sender_fail_wrong_emitter_address() {
|
||||
let result = apply_price_update(
|
||||
&default_config_info(),
|
||||
WRONG_SOURCE.address.0,
|
||||
DEFAULT_DATA_SOURCE.chain.into(),
|
||||
WRONG_SOURCE.address,
|
||||
DEFAULT_DATA_SOURCE.chain,
|
||||
vec![PriceAttestation::default()],
|
||||
);
|
||||
assert_eq!(result, Err(PythContractError::InvalidUpdateEmitter.into()));
|
||||
|
@ -1717,8 +1721,8 @@ mod test {
|
|||
fn test_verify_vaa_sender_fail_wrong_emitter_chain() {
|
||||
let result = apply_price_update(
|
||||
&default_config_info(),
|
||||
DEFAULT_DATA_SOURCE.address.0,
|
||||
WRONG_SOURCE.chain.into(),
|
||||
DEFAULT_DATA_SOURCE.address,
|
||||
WRONG_SOURCE.chain,
|
||||
vec![PriceAttestation::default()],
|
||||
);
|
||||
assert_eq!(result, Err(PythContractError::InvalidUpdateEmitter.into()));
|
||||
|
@ -2039,8 +2043,8 @@ mod test {
|
|||
fn governance_vaa(instruction: &GovernanceInstruction) -> Vaa<Box<RawMessage>> {
|
||||
create_vaa_from_payload(
|
||||
&instruction.serialize().unwrap(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address.0,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
7,
|
||||
)
|
||||
}
|
||||
|
@ -2128,8 +2132,8 @@ mod test {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
SECONDARY_GOVERNANCE_SOURCE.address.0,
|
||||
SECONDARY_GOVERNANCE_SOURCE.chain.into(),
|
||||
SECONDARY_GOVERNANCE_SOURCE.address,
|
||||
SECONDARY_GOVERNANCE_SOURCE.chain,
|
||||
12,
|
||||
);
|
||||
|
||||
|
@ -2163,8 +2167,8 @@ mod test {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
SECONDARY_GOVERNANCE_SOURCE.address.0,
|
||||
SECONDARY_GOVERNANCE_SOURCE.chain.into(),
|
||||
SECONDARY_GOVERNANCE_SOURCE.address,
|
||||
SECONDARY_GOVERNANCE_SOURCE.chain,
|
||||
12,
|
||||
);
|
||||
|
||||
|
@ -2197,8 +2201,8 @@ mod test {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
SECONDARY_GOVERNANCE_SOURCE.address.0,
|
||||
SECONDARY_GOVERNANCE_SOURCE.chain.into(),
|
||||
SECONDARY_GOVERNANCE_SOURCE.address,
|
||||
SECONDARY_GOVERNANCE_SOURCE.chain,
|
||||
12,
|
||||
);
|
||||
|
||||
|
|
|
@ -20,9 +20,7 @@ use {
|
|||
PriceStatus,
|
||||
},
|
||||
pythnet_sdk::test_utils::{
|
||||
create_accumulator_message,
|
||||
create_dummy_price_feed_message,
|
||||
create_vaa_from_payload,
|
||||
create_accumulator_message, create_dummy_price_feed_message, create_vaa_from_payload, DEFAULT_DATA_SOURCE, DEFAULT_GOVERNANCE_SOURCE, DEFAULT_VALID_TIME_PERIOD, SECONDARY_DATA_SOURCE, SECONDARY_GOVERNANCE_SOURCE
|
||||
},
|
||||
serde_json::json,
|
||||
wormhole_sdk::Chain as WormholeChain,
|
||||
|
@ -69,10 +67,16 @@ async fn initialize_chain() -> (
|
|||
.args_json(&json!({
|
||||
"wormhole": wormhole.id(),
|
||||
"codehash": codehash,
|
||||
"initial_source": Source::default(),
|
||||
"gov_source": Source::default(),
|
||||
"initial_source": Source {
|
||||
emitter: DEFAULT_DATA_SOURCE.address.0,
|
||||
chain: DEFAULT_DATA_SOURCE.chain.into(),
|
||||
},
|
||||
"gov_source": Source {
|
||||
emitter: DEFAULT_GOVERNANCE_SOURCE.address.0,
|
||||
chain: DEFAULT_GOVERNANCE_SOURCE.chain.into(),
|
||||
},
|
||||
"update_fee": U128::from(1u128),
|
||||
"stale_threshold": 32,
|
||||
"stale_threshold": DEFAULT_VALID_TIME_PERIOD,
|
||||
}))
|
||||
.gas(300_000_000_000_000)
|
||||
.transact_async()
|
||||
|
@ -95,18 +99,21 @@ async fn test_set_sources() {
|
|||
module: GovernanceModule::Target,
|
||||
action: GovernanceAction::SetDataSources {
|
||||
data_sources: vec![
|
||||
Source::default(),
|
||||
Source {
|
||||
emitter: [1; 32],
|
||||
chain: Chain::from(WormholeChain::Solana),
|
||||
emitter: DEFAULT_DATA_SOURCE.address.0,
|
||||
chain: DEFAULT_DATA_SOURCE.chain.into(),
|
||||
},
|
||||
Source {
|
||||
emitter: SECONDARY_DATA_SOURCE.address.0,
|
||||
chain: SECONDARY_DATA_SOURCE.chain.into(),
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
1,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -131,10 +138,13 @@ async fn test_set_sources() {
|
|||
serde_json::from_slice::<Vec<Source>>(&contract.view("get_sources").await.unwrap().result)
|
||||
.unwrap(),
|
||||
&[
|
||||
Source::default(),
|
||||
Source {
|
||||
emitter: [1; 32],
|
||||
chain: Chain::from(WormholeChain::Solana),
|
||||
emitter: DEFAULT_DATA_SOURCE.address.0,
|
||||
chain: DEFAULT_DATA_SOURCE.chain.into(),
|
||||
},
|
||||
Source {
|
||||
emitter: SECONDARY_DATA_SOURCE.address.0,
|
||||
chain: SECONDARY_DATA_SOURCE.chain.into(),
|
||||
},
|
||||
]
|
||||
);
|
||||
|
@ -156,8 +166,8 @@ async fn test_set_governance_source() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[1; 32],
|
||||
WormholeChain::Solana.into(),
|
||||
SECONDARY_GOVERNANCE_SOURCE.address,
|
||||
SECONDARY_GOVERNANCE_SOURCE.chain,
|
||||
1,
|
||||
);
|
||||
|
||||
|
@ -172,8 +182,8 @@ async fn test_set_governance_source() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
2,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -199,18 +209,21 @@ async fn test_set_governance_source() {
|
|||
module: GovernanceModule::Target,
|
||||
action: GovernanceAction::SetDataSources {
|
||||
data_sources: vec![
|
||||
Source::default(),
|
||||
Source {
|
||||
emitter: [2; 32],
|
||||
chain: Chain::from(WormholeChain::Solana),
|
||||
emitter: DEFAULT_DATA_SOURCE.address.0,
|
||||
chain: DEFAULT_DATA_SOURCE.chain.into(),
|
||||
},
|
||||
Source {
|
||||
emitter: SECONDARY_DATA_SOURCE.address.0,
|
||||
chain: SECONDARY_DATA_SOURCE.chain.into(),
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[1; 32],
|
||||
WormholeChain::Solana.into(),
|
||||
SECONDARY_GOVERNANCE_SOURCE.address,
|
||||
SECONDARY_GOVERNANCE_SOURCE.chain,
|
||||
2,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -239,16 +252,20 @@ async fn test_set_governance_source() {
|
|||
data_sources: vec![
|
||||
Source::default(),
|
||||
Source {
|
||||
emitter: [2; 32],
|
||||
chain: Chain::from(WormholeChain::Solana),
|
||||
emitter: DEFAULT_DATA_SOURCE.address.0,
|
||||
chain: DEFAULT_DATA_SOURCE.chain.into(),
|
||||
},
|
||||
Source {
|
||||
emitter: SECONDARY_DATA_SOURCE.address.0,
|
||||
chain: SECONDARY_DATA_SOURCE.chain.into(),
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
4,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -280,7 +297,7 @@ async fn test_stale_threshold() {
|
|||
.duration_since(std::time::UNIX_EPOCH)
|
||||
.expect("Failed to get UNIX timestamp")
|
||||
.as_secs()
|
||||
- 60;
|
||||
- DEFAULT_VALID_TIME_PERIOD;
|
||||
|
||||
// Submit a Price Attestation to the contract.
|
||||
let vaa = create_vaa_from_payload(
|
||||
|
@ -306,8 +323,8 @@ async fn test_stale_threshold() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_DATA_SOURCE.address,
|
||||
DEFAULT_DATA_SOURCE.chain,
|
||||
1,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -380,8 +397,8 @@ async fn test_stale_threshold() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_DATA_SOURCE.address,
|
||||
DEFAULT_DATA_SOURCE.chain,
|
||||
2,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -431,8 +448,8 @@ async fn test_stale_threshold() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
3,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -491,8 +508,8 @@ async fn test_contract_fees() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
1,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -568,8 +585,8 @@ async fn test_contract_fees() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_DATA_SOURCE.address,
|
||||
DEFAULT_DATA_SOURCE.chain,
|
||||
2,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -619,8 +636,8 @@ async fn test_same_governance_sequence_fails() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
1,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -674,8 +691,8 @@ async fn test_out_of_order_sequences_fail() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
1,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -705,8 +722,8 @@ async fn test_out_of_order_sequences_fail() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
3,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -736,8 +753,8 @@ async fn test_out_of_order_sequences_fail() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
2,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -772,8 +789,8 @@ async fn test_governance_target_fails_if_not_near() {
|
|||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
1,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
@ -808,18 +825,17 @@ async fn test_accumulator_updates() {
|
|||
module: GovernanceModule::Target,
|
||||
action: GovernanceAction::SetDataSources {
|
||||
data_sources: vec![
|
||||
Source::default(),
|
||||
Source {
|
||||
emitter: [1; 32],
|
||||
chain: Chain::from(WormholeChain::Any),
|
||||
emitter: DEFAULT_DATA_SOURCE.address.0,
|
||||
chain: DEFAULT_DATA_SOURCE.chain.into(),
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
.serialize()
|
||||
.unwrap(),
|
||||
[0; 32],
|
||||
WormholeChain::Any.into(),
|
||||
DEFAULT_GOVERNANCE_SOURCE.address,
|
||||
DEFAULT_GOVERNANCE_SOURCE.chain,
|
||||
1,
|
||||
);
|
||||
let vaa = hex::encode(serde_wormhole::to_vec(&vaa).unwrap());
|
||||
|
|
Loading…
Reference in New Issue