You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
let hex_str = "010000000001006fc16df905b08c16553eda9d5a7898ec7eba4267ce0af7945625c955e8f435fc7df7a4087af360f88c2477f0c2f4e7eaa4bb1e8fd43677f4d6b04ee20e225186000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d010400020000000000000000";
138
+
let hex_str = "01000000000100c9effcab077af2f3f65a7abfd1883295529eab7c0d4434772ed1f2d10b1de3571c214af45e944a3fee65417c9f0c6024010dadc26d30bb361e05f552ca4de04d000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d010400020000000000000003";
134
139
let bytes = Vec::from_hex(hex_str).expect("Invalid hex string");
135
140
136
141
let result = pyth_contract
137
142
.sender(alice)
138
143
.execute_governance_instruction(bytes.clone());
139
144
140
-
println!("Result: {:?}", result.unwrap_err());
141
-
// assert!(result.is_ok());
145
+
assert!(
146
+
result.is_ok(),
147
+
"SetValidPeriod governance instruction should succeed"
let hex_str = "0100000000010051c35e992b6dcfc81f02b430914694b4fbbeae7f952f3d3f1ff350f332d1d24916e2f56336ce0c392247e8c1fbb1b74eac87a68d681c729fa860f3788ece2788000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d0107000200000000000000050000000000000003147e5f4552091a69125d5dfcb7b8c2659029395bdf";
189
-
let bytes = Vec::from_hex(hex_str).expect("Invalid hex string");
let hex_str = "01000000000100b441e497034be4ee82242a866461d5e6744082654f71301a96f579f629b6bf176cc0c1964cd7d4f792436b7a73fc7024d72b138869b4d81d449740bb08148238000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d01010002010000000001009c9dc62e92fefe0806dce30b662a5d319417a62dccc700b5f2678306d39c005f7a5e74d11df287301d85d328a3d000c5d793c57161f3150c7eb1a17668946e6b010000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000064005054474d0105000200000000";
246
+
let hex_str = "01000000000100eb6abceff17a900422cbe415bd4776aa6477ee6ec7f3f58d1635ea2071fb915e43c6ac312b34996d4a76c52de96a8c2cc1c50aacb45aa2013eb6c8d05a472f94010000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d01010002010000000001006fc27ac424b300c23a564bcabe1d7888a898cba92b8aec62468c35025baaf4a87056c50d443fbc172c3caa30d28ec57cefc0bbabf4590ffe98c44dff040d0e02000000000100000000000200000000000000000000000000000000000000000000000000000000000011110000000000000001005054474d0105000200000001";
259
247
let bytes = Vec::from_hex(hex_str).expect("Invalid hex string");
let hex_str = "0100000000010067940f58a6a44c93606bd721701539e0da93d5ea1583a735fbb13ecbcf9c01fc70240de519ea76869af14d067d68c5f3f2230f565f41b7009f3c3e63749353ed000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d0103000200000000000000050000000000000003";
356
+
let bytes = Vec::from_hex(&hex_str).expect("Invalid hex string");
357
+
358
+
let result = pyth_contract
359
+
.sender(alice)
360
+
.execute_governance_instruction(bytes.clone());
361
+
362
+
assert!(result.is_err(),"Invalid VAA should revert the transaction");
// Changed the magic signature to an invalid one (6064474d instead of 5054474d)
374
+
let hex_str = "0100000000010067940f58a6a44c93606bd721701539e0da93d5ea1583a735fbb13ecbcf9c01fc70240de519ea76869af14d067d68c5f3f2230f565f41b7009f3c3e63749353ed000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001006064474d0103000200000000000000050000000000000003";
375
+
let bytes = Vec::from_hex(&hex_str).expect("Invalid hex string");
376
+
377
+
let result = pyth_contract
378
+
.sender(alice)
379
+
.execute_governance_instruction(bytes.clone());
380
+
381
+
assert!(result.is_err(),"Invalid VAA should revert the transaction");
let hex_str = "0100000000010067940f58a676869af14d067d68c5f3f2230f565f41b7009f3c3e63749353ed000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d0103000200000000000000050000000000000003";
393
+
let bytes = Vec::from_hex(&hex_str).expect("Invalid hex string");
394
+
395
+
let result = pyth_contract
396
+
.sender(alice)
397
+
.execute_governance_instruction(bytes.clone());
398
+
399
+
assert!(result.is_err(),"Invalid VAA should revert the transaction");
// Changed the version number to an invalid one (2 instead of 1)
411
+
let hex_str = "0200000000010067940f58a6a44c93606bd721701539e0da93d5ea1583a735fbb13ecbcf9c01fc70240de519ea76869af14d067d68c5f3f2230f565f41b7009f3c3e63749353ed000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d0103000200000000000000050000000000000003";
412
+
let bytes = Vec::from_hex(&hex_str).expect("Invalid hex string");
413
+
414
+
let result = pyth_contract
415
+
.sender(alice)
416
+
.execute_governance_instruction(bytes.clone());
417
+
418
+
assert!(result.is_err(),"Invalid VAA should revert the transaction");
// Changed the emitter chain ID to a different one (2 instead of 1)
430
+
let hex_str = "0100000000010057940f58a6a44c93606bd721701539e0da93d5ea1583a735fbb13ecbcf9c01fc70240de519ea76869af14d067d68c5f3f2230f565f41b7009f3c3e63749353ed000000000100000000000200000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d0103000200000000000000050000000000000003";
431
+
let bytes = Vec::from_hex(&hex_str).expect("Invalid hex string");
432
+
433
+
let result = pyth_contract
434
+
.sender(alice)
435
+
.execute_governance_instruction(bytes.clone());
436
+
437
+
assert!(result.is_err(),"Invalid VAA should revert the transaction");
// Changed the emitter chain ID to a different one (...0011 to ...0022)
449
+
let hex_str = "0100000000010057940f58a6a44c93606bd721701539e0da93d5ea1583a735fbb13ecbcf9c01fc70240de519ea76869af14d067d68c5f3f2230f565f41b7009f3c3e63749353ed000000000100000000000100000000000000000000000000000000000000000000000000000000000000220000000000000001005054474d0103000200000000000000050000000000000003";
450
+
let bytes = Vec::from_hex(&hex_str).expect("Invalid hex string");
451
+
452
+
let result = pyth_contract
453
+
.sender(alice)
454
+
.execute_governance_instruction(bytes.clone());
455
+
456
+
assert!(result.is_err(),"Invalid VAA should revert the transaction");
let hex_str = "0100000000010057940f58a6a44c93606bd721701539e0da93d5ea1583a735fbb13ecbcf9c01fc70240de519ea76869af14d067d68c5f3f2230f565f41b7009f3c3e63749353ed000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d0103000200000000000000050000000000000003";
468
+
let bytes = Vec::from_hex(&hex_str).expect("Invalid hex string");
469
+
470
+
let result = pyth_contract
471
+
.sender(alice)
472
+
.execute_governance_instruction(bytes.clone());
473
+
474
+
assert!(result.is_ok(),"This is a valid VAA, should go through");
475
+
476
+
let result = pyth_contract
477
+
.sender(alice)
478
+
.execute_governance_instruction(bytes.clone());
479
+
480
+
assert!(
481
+
result.is_err(),
482
+
"Cannot execute the same sequence number again, should revert"
// This VAA is for a target chain ID of 1 (Solana), but the PythReceiver is on chain ID 2 (Ethereum)
495
+
let hex_str = "0100000000010057940f58a6a44c93606bd721701539e0da93d5ea1583a735fbb13ecbcf9c01fc70240de519ea76869af14d067d68c5f3f2230f565f41b7009f3c3e63749353ed000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d0103000100000000000000050000000000000003";
496
+
let bytes = Vec::from_hex(&hex_str).expect("Invalid hex string");
497
+
498
+
let result = pyth_contract
499
+
.sender(alice)
500
+
.execute_governance_instruction(bytes.clone());
501
+
502
+
assert!(
503
+
result.is_err(),
504
+
"Incorrect target chain ID should revert the transaction"
// Changes this action to be a SetDataSources action instead of a SetFee action
517
+
let hex_str = "0100000000010057940f58a6a44c93606bd721701539e0da93d5ea1583a735fbb13ecbcf9c01fc70240de519ea76869af14d067d68c5f3f2230f565f41b7009f3c3e63749353ed000000000100000000000100000000000000000000000000000000000000000000000000000000000000110000000000000001005054474d0102000200000000000000050000000000000003";
518
+
let bytes = Vec::from_hex(&hex_str).expect("Invalid hex string");
519
+
520
+
let result = pyth_contract
521
+
.sender(alice)
522
+
.execute_governance_instruction(bytes.clone());
523
+
524
+
assert!(
525
+
result.is_err(),
526
+
"Wrong action expected should lead to bad parsing"
0 commit comments