Skip to content

Commit 7f6afc9

Browse files
committed
added test to verify multiple updates configured
1 parent 3a559c0 commit 7f6afc9

File tree

2 files changed

+83
-13
lines changed

2 files changed

+83
-13
lines changed

target_chains/stylus/contracts/pyth-receiver/src/integration_tests.rs

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#[cfg(test)]
22
mod test {
33
use crate::error::PythReceiverError;
4-
use crate::test_data::good_update1_results;
5-
use crate::test_data::{self, good_update2_results, multiple_updates_results};
4+
use crate::test_data::*;
65
use crate::PythReceiver;
76
use alloy_primitives::{Address, U256};
87
use motsu::prelude::*;
@@ -57,7 +56,7 @@ mod test {
5756
wormhole_contract: &Contract<WormholeContract>,
5857
alice: &Address,
5958
) {
60-
let guardians = test_data::current_guardians();
59+
let guardians = current_guardians();
6160
let governance_contract =
6261
Address::from_slice(&GOVERNANCE_CONTRACT.to_be_bytes::<32>()[12..32]);
6362
wormhole_contract
@@ -103,7 +102,7 @@ mod test {
103102
) {
104103
pyth_wormhole_init(&pyth_contract, &wormhole_contract, &alice);
105104

106-
let update_data = test_data::good_update1();
105+
let update_data = good_update1();
107106
let update_fee = mock_get_update_fee(update_data.clone()).unwrap();
108107

109108
alice.fund(update_fee);
@@ -128,7 +127,7 @@ mod test {
128127

129128
alice.fund(U256::from(200));
130129

131-
let update_data = test_data::good_update1();
130+
let update_data = good_update1();
132131
let update_fee = mock_get_update_fee(update_data.clone()).unwrap();
133132
let small_update_fee = update_fee / U256::from(2);
134133

@@ -140,17 +139,17 @@ mod test {
140139
}
141140

142141
#[motsu::test]
143-
fn test_get_price_after_multiple_updates_returns_recent_price(
142+
fn test_get_price_after_multiple_different_updates_returns_recent_price(
144143
pyth_contract: Contract<PythReceiver>,
145144
wormhole_contract: Contract<WormholeContract>,
146145
alice: Address,
147146
) {
148147
pyth_wormhole_init(&pyth_contract, &wormhole_contract, &alice);
149148

150-
let update_data1 = test_data::good_update1();
149+
let update_data1 = good_update1();
151150
let update_fee1 = mock_get_update_fee(update_data1.clone()).unwrap();
152151

153-
let update_data2 = test_data::good_update2();
152+
let update_data2 = good_update2();
154153
let update_fee2 = mock_get_update_fee(update_data2.clone()).unwrap();
155154

156155
alice.fund(update_fee1 + update_fee2);
@@ -218,7 +217,7 @@ mod test {
218217
) {
219218
pyth_wormhole_init(&pyth_contract, &wormhole_contract, &alice);
220219

221-
let update_data = test_data::good_update2();
220+
let update_data = good_update2();
222221
let update_fee = mock_get_update_fee(update_data.clone()).unwrap();
223222

224223
alice.fund(update_fee);
@@ -243,7 +242,7 @@ mod test {
243242
) {
244243
pyth_wormhole_init(&pyth_contract, &wormhole_contract, &alice);
245244

246-
let update_data = test_data::good_update2();
245+
let update_data = good_update2();
247246
let update_fee = mock_get_update_fee(update_data.clone()).unwrap();
248247

249248
alice.fund(update_fee);
@@ -264,14 +263,14 @@ mod test {
264263
}
265264

266265
#[motsu::test]
267-
fn test_multiple_updates_different_ids_updates_both(
266+
fn test_multiple_updates_in_same_vaa_different_ids_updates_both(
268267
pyth_contract: Contract<PythReceiver>,
269268
wormhole_contract: Contract<WormholeContract>,
270269
alice: Address,
271270
) {
272271
pyth_wormhole_init(&pyth_contract, &wormhole_contract, &alice);
273272

274-
let update_data = test_data::multiple_updates();
273+
let update_data = multiple_updates_same_vaa();
275274
let update_fee = mock_get_update_fee(update_data.clone()).unwrap();
276275

277276
alice.fund(update_fee);
@@ -300,4 +299,44 @@ mod test {
300299
assert!(second_price_result.is_ok());
301300
assert_eq!(second_price_result.unwrap(), multiple_updates_results()[1]);
302301
}
302+
303+
#[motsu::test]
304+
fn test_multiple_updates_different_ids_updates_both(
305+
pyth_contract: Contract<PythReceiver>,
306+
wormhole_contract: Contract<WormholeContract>,
307+
alice: Address,
308+
) {
309+
pyth_wormhole_init(&pyth_contract, &wormhole_contract, &alice);
310+
311+
let update_data = multiple_updates_diff_vaa();
312+
let update_fee = mock_get_update_fee(update_data.clone()).unwrap();
313+
314+
alice.fund(update_fee);
315+
316+
let result = pyth_contract
317+
.sender_and_value(alice, update_fee)
318+
.update_price_feeds(update_data);
319+
assert!(result.is_ok());
320+
321+
let first_id: [u8; 32] = [
322+
0x3f, 0xa4, 0x25, 0x28, 0x48, 0xf9, 0xf0, 0xa1, 0x48, 0x0b, 0xe6, 0x27, 0x45, 0xa4,
323+
0x62, 0x9d, 0x9e, 0xb1, 0x32, 0x2a, 0xeb, 0xab, 0x8a, 0x79, 0x1e, 0x34, 0x4b, 0x3b,
324+
0x9c, 0x1a, 0xdc, 0xf5,
325+
];
326+
let second_id: [u8; 32] = TEST_PRICE_ID;
327+
328+
let first_price_result = pyth_contract.sender(alice).get_price_unsafe(first_id);
329+
assert!(first_price_result.is_ok());
330+
assert_eq!(
331+
first_price_result.unwrap(),
332+
multiple_updates_diff_vaa_results()[0]
333+
);
334+
335+
let second_price_result = pyth_contract.sender(alice).get_price_unsafe(second_id);
336+
assert!(second_price_result.is_ok());
337+
assert_eq!(
338+
second_price_result.unwrap(),
339+
multiple_updates_diff_vaa_results()[1]
340+
);
341+
}
303342
}

target_chains/stylus/contracts/pyth-receiver/src/test_data.rs

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use alloy_primitives::{address, Address, I32, I64, U64};
22
use hex::FromHex;
3+
use std::vec;
34

45
pub fn good_update1() -> Vec<Vec<u8>> {
56
let hex_str = "504e41550100000003b801000000040d0216f3809b6396fdb0708bc94515ddb96a3bc8fb1993916e74f522ab4c34a268836a0bb38786303b55cc40ecb50d18c92bf9fd61688a143f3d24a73a3f468e4ab0000365be4f3a330fe96bab246922d9fa4816a865dec40d7c522e37f7e3605673b8f52eb30a4dad7aee3e1ac4b21337b8831c6147ef6e359e843b307872e83b5c7fe80004b6f12766eb395d04bdb146b1b69a4b9a8831a9c9ea20ee841d55efe72c629aef17038b925584493af7882981260b09587d73b6463415f4e1f8fb0a2a2c959c8301065c18a776cf558e43494bf31dd26ac0e3aed07a01ca0063abcfca3736b892368e4bf8b957f2d2e83ff9eb3fa8f667ef97a5f48c286103f70fda4a72e077719a0200085896c930febfb864a8c292bde679092e386e53389cb2d26bd12ceed64d22c0cd27676dc5c46d3e3c5949abbce89d4cc5ec378cfbf9ab1b0c24cfeb3371df4864000a1c67e67adea9f8a71eee76765f1fe4c7d9539d21b62d0336513692897cc6acbe1c827599a1f8c73b7478e8d788443b4cfd4e373344ab1ac9f771c9c494124863000b7e08e1cc1291340e6ec7d1b04c6a9c63f74077a074ee68edf4f95cf24c9743620f8abc8213884c8e4848fb76ec319d365e0cdc746a6e534a4cb828e51719be79010c61a2fedeedf34e4c80624d80cb93e24bafe9f6d23339173004d84e61c2395bfb5f552e87b901beb192ba6f4fc905eae30317c52b8614071e08a265592f24e8de000de38d08612edc5ebc863ea5a96325cb991750a94ff0e50f86bc322cce81db7cd17cb4ed3703f7477eb111a9d881e1345f5b79d618814f31b46034196563ee6a18000e5b11510d585a2decaba0be9e71386865b6069061478f7254d7852d55116569eb426c385267e40264d16db08e0f1a9e2c44b7d1c926d3c3ba662b212572386483010fa1ad0278402104b146b6f4d1cf85ac4df961d24eea0c7948b700f9973596cad130abfff25feef37125ba38507f34308d967455651e7014e40264a0c6510d3af001101f2e4e70868d6c327c92229537f1ffa33e488da3140ccc086f8210b437b162190742bd01ad1cb495a93f20045b4bb47e1562fdd82a8a1548d87d788a492b17190111847f5095df3edefc58be0956aee19876e850516e132506fd67504afee3c8cf240f07fb607b3c8282a2e56dcad23959e6759bdf8ad345ba8150448da56ff34fcc016866baf800000000001ae101faedac5851e32b9b23b5f9411a8c2bac4aae3ed4dd7b811dd1a72ea4aa71000000000880cea9014155575600000000000d8e5c8d0000271085e6ab1bb044f57c4cd6c1d32aa0a82a5032198301005500e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43000009f9828e420300000001284f2da6fffffff8000000006866baf8000000006866baf8000009f3b955a26000000001062cb8780c1283a49180b4986f0dec3c746d3daeb597887747b8f66a09876e1253a1ebb8a6bc4a5793daaa343db6057b82ec29715d7e1db0ffd6db523f7b80b03e3866ef5f5c80728801b92f5acecc28d8517e5615335d89c553f94b4370f3a20be0bc23e0fd401c4e5bd8bd32948a26233fc48f116428a490f087030ccfc442753e3074e2b9bbc1c61a009d86aaa200645c627a6b7f2f6597e34c60b14a58ef2583bcbb1d0e21b71a264fad2648ecc545031c7ed598772ffe875bf94a488389a49e6025e1b2a1f07ec598d0d9aa8ef7dd2733c8502c49d1d1323f1ae664e82e8a5e14978d52ab448ba9b1afc78f06c8cd17415a17";
@@ -13,12 +14,42 @@ pub fn good_update2() -> Vec<Vec<u8>> {
1314
vec![bytes]
1415
}
1516

16-
pub fn multiple_updates() -> Vec<Vec<u8>> {
17+
pub fn multiple_updates_same_vaa() -> Vec<Vec<u8>> {
1718
let hex_str = "504e41550100000003b801000000040d02e57b0f291daa4d2f02f5c4a18793b278b238338f472d17897f8f0866549f77571cfe71fa55bae7f340b9124511559b73a0cf01c72adc8a8d9963cebecc5a503801039507a96b155046ab039f7c9cad17a4927e2ff34763bca9b65d572ddc7a5f019832ffbeeb5295447bfdb989efa0314865bb4571770ad8e75ae7a083288d6de232010412e7333ab5cf0f20274b0907da43b52016d5a095bb846962d13a222e4af1e7e63f7a8db49de04feb70f07a0e274dc58acc7a4c386a099369412c6813ba39916100063da672f75cf1d397829a39461e311ca366366828be8d12b19a00c552e7c8c5e7746b36d97dccc54e5b3aeae188b372ec885dc1fbd9c2285ce458764c86f0c1bb0008863aa237e9fe339683992121249a2e520b6483a3b3b60c703a1eb09ef33266312e729ff6d398e1a60be8474a95803cd1641ef6c1de2c74f3cd7e1f2510c919f9000a3bd5ec58424b21c48552c3be0f9cccd6e6c641eee2b4e550fb88cc93cfdf10c7409344ec3e81df711a293baba565a85e620d20028d9738e53939fa52f19ce622010b000f803511f89f02610fbece34fe327afb55196cc3e522bb28d71d6e4d5523ac77ca1afbbd8a28b4fe05c7f2aa1c3f428c89fe21096ba67bc505cbfa6ead9808010c315b34c9cac03647df4e12a050f8b739763498aa23999244036e09010e2a79a46d0cbabc22c535542896bc22df05dc5480db06a370dffeb0814424870fd50c21000d4a562686000b65df4e0ca00d2e00d10db9e913b481337ee1c80bb47b25553afb693d7be0c17f6fb106909a1eed52a6c27739471b719d4c450b99b066a02bd2c9010e309508bc7128030ca4b19fc34c0ee0e62eebb549c759c2e8ccfdf062793e41e935754ae1d5356ba98446fa2eaa837ae4b413d1ccdf1af6d9060a2885f18c19e1010f3e2ff50704a6ad1b491cb93a1e4678c0f58b91540ba3ce3b4424c96abbe922562c924debb3336ab2fe835237f16912d768e6e5b739f2ab44b57a1e2607c9bb89001070d0dfac758a38342b107870b4d5761df9e785c6be589317c4b1dad3c08998f11214c29201d172b278aa6f4d57171f0f05fb7a2718e6da6df4449e8897c0c2ac0011d9e885989fa2363ec311bf4e9ebd8738d4b3ecaf9a31c09ce06f9876c3ab772034c1df9ca09c847ee81de80a1f0f8592019fa60e55b02b657b8a7c99bee04701016866e28300000000001ae101faedac5851e32b9b23b5f9411a8c2bac4aae3ed4dd7b811dd1a72ea4aa710000000008812f80014155575600000000000d8ebd6500002710f015dfd43b23aad91dcd4a7a8a113ed2d39233f202005500e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43000009fee44efa2300000000e7f6ffe3fffffff8000000006866e283000000006866e283000009fb4f364d0000000000e98d2f400c2704dab60f1b310d567acb60d77a3ce8003a6f564e8e1f567f00f004381d755e160a07372977a99288dcc9c9477cf9c1bb095403b514082aa774f7b243003e30548cbd97e8191d5ef2732796e06f84f05543a171f1e66052aa515c41a2d994a0d13e2e4016e6a28823201a52d408a5024797ec4b7629406062dd9ccc30a5d1eb4ac8b4a28a3d464bf4335ceda7646e03c29cc24b6c7c5e5924e6e69400a2c90561c9a2e4555084af13fbc7eaa0a884b75d4d1197933ac174b62c4b9b1cde3dd496f5e54cd2e01cdca0ba5c5a80a2bbd0d9d5dfb7aab5b638ef883e4e55f78a1536fe79c5c3e16cda9b53e364e3bbe95f005500ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace0000003c480c0e980000000009727f59fffffff8000000006866e283000000006866e2830000003c3597da300000000007d3439a0ccf5f10d7559e184107e994663aa0fc8f81718c0b281162b77eb09c774da30e2db5674df62494b3da820f6c986a0f32d1a195b6bc4676891d4e28cdb4e2f09dd47db3243547b37bdbb9799c82a42d6f1f18f8e17d7bed68408ef26e184f21e9b640e2c9f0416d91987acbe6fa8e72c2c99fa548f83c0eb5dd3c269ef52101521ef0b3d26f50b07dae68311bd138338881b20b78f8d21d2bfc27e9ac849b4c659d61c9a2e4555084af13fbc7eaa0a884b75d4d1197933ac174b62c4b9b1cde3dd496f5e54cd2e01cdca0ba5c5a80a2bbd0d9d5dfb7aab5b638ef883e4e55f78a1536fe79c5c3e16cda9b53e364e3bbe95f";
1819
let bytes = Vec::from_hex(hex_str).expect("Invalid hex string");
1920
vec![bytes]
2021
}
2122

23+
pub fn multiple_updates_diff_vaa() -> Vec<Vec<u8>> {
24+
let hex_str_update_1 = "504e41550100000003b801000000040d0168bad50bb1470e136368ebadeb842cf5256547a30cd65c320a0e476bca15f204326806e4290c004925040f5eea31592c55341936fe7e7537d7b4172f308fc79701033b17478509bf096ebc6107afaaf9f339f68d3ad7ebd9267585cd945b91c93f687550c07d4526dc6f2ad0335c1e849977d91d2e61be04d746a611b444af272a9f0104ce96c5a8d9e4e869c2b7ae54980bf9f315af3d93fe827a346b3b55041e019e982350498c7094c77f09567cd3f2a9961940e304666fb08bfbfac7aa1a6ec157cf010639036dea5439380e1c946f76f06480965b60edf280272ab7f649840e289e3d740e4822619e5608811c66158d22ccdea633961687b3afec2751a53a37b3fd6f4a010a370bf667e0fd0b6df27ae87e94513740d1581ca9eadc15b049b5ce4d96b57ba85f92a7bdc478fde36efd7ab80674048589421fc2644457d7b4e398bc1b5c01f0010bb5ef6559a20289cf9df4a8c076baecd3d8e3567973acf975ee52d0301b8cbddd7bb2e4348fb59020bae2caefd57945cf1107cff7f5fd068079fa59ea27e0e702000cae84bce54e40a0583d8c957ddab0388d053a85622cd83c3de49e4bc4acf515351e118f4c36b903f09fe3afd7ce5499c73c37e80d742fdfbb1a57d7f442f915f7000d90c05b57e9592b303305b0e2a88b05f5b006a5f911ac9feba74c309acbfc3af8270b4d8c0759677db601af1893ec4523f023ee6810070148cd017ca2fe2d5663010e17a7472d37425d9f1505e998736d4138f6f35c620c195340ef87ca0d155cf3aa12fe9c0a9c6341411734dacbc53e36895efa69c9895d682bc6329294a49fd928000fed2cb761a8837d87cf827141eedfeafd1901e38957930bf56cc044ebf2c34e3e06bd8197b10d356236acb2c31be6031b95caf2d7492e2744b176bf8a4a357cb70110f22c1178f5c734e83134432c2f5c76cb6462ccba9db0177640cde08b5413ce09630a9c0d5682ee2a1acca1f5d0a6a3583b9578c6e0fbb2d489e252ec7e5960a90011d984560f66ce62be4ba2512e2d62777429f37d6020f9dcb9a0ac54522f80462b4ff33ab5c832748e50cda01e34eef28271982ac22b216cac2a6bde33a83f6bfd011207131b4a1ab2f2ed984cd444210c5c4147d5da72b27d1fdbf6f1a087141ab6971b20175fd67abc937ad69a42991b780804e67e926a8ca2b218521d6572c394c100686ed88a00000000001ae101faedac5851e32b9b23b5f9411a8c2bac4aae3ed4dd7b811dd1a72ea4aa71000000000894a31a014155575600000000000da2316b00002710d957df1a464d0193bc0c9dd3b555d0544a04623e010055003fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf50000000002181de10000000000008db7fffffff800000000686ed88a00000000686ed88a00000000021501d40000000000008b300c29ff39535a48e8f09021a1fee7b9e887d68522dd790970609044b11d98aa7d4beb0d1e390c89ccad2fda83fd5316ad4483fc398b6534be617d42690cc27297ccbf19315c79064275612a0d16a2536fdafaca0648bd28b54a014a468906203c8a9d3deadd4ec12dd380bdd27f9a9bb41a5e841d23671743da3125f40b479518be5250080ac78df8826fb59d02dd07b310b69f954dea12b87cb5aa66af75d3da3f7327578f8ed0c0a7b98d1becad74b16e03ff52eee04497971d9985fd9cc05215490b44499df2c3a64f6fefa743421d947d34de37e185b242db065c8f89e9bb028a3710646273f0721e26c68dbd85fb20";
25+
let hex_str_update_2 = "504e41550100000003b801000000040d0239010392dab908eb9903d480abf8118d887f2a0c5eaeb9062e6eabab86c1b382127604c63358a7266cc5bade7726e159403c2bf317c7b3a4d8b489bfad4e334301031823d70352d3260226cbdddab0cf7d1584c0e1d23d4358ed12f9620e18a0db2154fbb096ac4cb8d5728e2cecf2b1398d7b9b51954f3fb8b4f59990ce017b0260000495e2691d8e6a0537d8ab3f41b5eb655acde7fbeaea0fdbe1f582383680f54c8a3a697c2c0f8b4110422f1b6beb0bfb601c929148b54dbf85fb19c333ccbb833c00066993a56c5980bf17d2790b933861fffb1fd09618921a90db4ab82cc8b148301f1a55d804d14cb39f648fdb0ef8c9ef1e24edc38d30f2aea7151025240a614bca0008a64a366c59bd6c4ce9d24a0e3beef2a33d28546826b1b969af184a257d648aab5672ad8a9eaf14473da40327e12e5c18168892bcebd693c8bed3df8ee50b85db010a36daa7c639c412969283f83749af93aef2464b27b83914b6026b721a59c8a04446a655686725247bd9154c71ca66505719df5867f775863a788d8bffb1bd637c000b237772560d72da81a782e89b138caf8bf1221b929ead77ca7d178b7b7af1c9141d9e77e22c98fe41b819f023695e6feed6f5215a5cdb6436bf52dc3c4c93e309010c89f2f3c64a8c77ccea47448e7871bbd70b59ed5761e5677458dbe6f82796efa2399e9ad9bf846d88d4688f1d19f9e2adeb2299017baf015c36a811d05c539b86000d6ba11d2f9a0edfd3a4bc23024d18dd010a83803faa79d40aec10a4deee40e8dd3c4c5401118b67bd6d879683cae3ea83d4f9afa744c655775615a7ce34237a02000e09a554d70c0f8e57bb79ce41552e38b836ad7b6bd1967e60c880f831341ad412699e4a9f5346713a6db2c7032bb7d1b3cc8e42f49ba17000f9d0916a13f2debf000f1ce88af88b96aaeb0104d4c966303eb9609df1b851a0d6149d05bba82f3fd70820a26d7f9d6fe18a7653fd3e3eda94fd9184726dadd2e8d58d09a8473e919f0800104583407293c41bef15c05ac20fc45fd5f9d00639c5b1f738d1ba42cd290fe5291e05219cefa8568806bfc1de76bcf5f799c90c9c6dd54bd69f9d459e994acb7a00110638c8067b42005ae678a7619e9eaad5fb66f0630547ab252179668e60b738c479ba6ff7e1f3dcffddab15e1bfebf93e0e4cb051535bdda3ecef6620aea32132016866e56400000000001ae101faedac5851e32b9b23b5f9411a8c2bac4aae3ed4dd7b811dd1a72ea4aa710000000008813690014155575600000000000d8ec4750000271098d4f856e398eb41afbd0f2b24ad80e58b1f57b601005500e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43000009fdcc9378c600000001105b4d5afffffff8000000006866e564000000006866e564000009fbf79e7bc000000000e99c0d1c0c02b95abadee324fbb6534576de1507c74c8ddef2b928c314cb3d4978a5ada03db907df05ba0fc051e659facec6479c324c276e5098fde9dcae0b462cd32d9e2e5b617b51ced85d38a8456022f3ab370d3c45a07acb686cfb39976b2f4bb1007a91e599951ed929f714a04dab0e6bd885a0c91a076f3b83ee8f765b70a3edda569876102f2c62cae15024e529a2e5e17c50411aa736c7511278a92f4d9cdda3239057c3a942a1365a58771734a982e41e1d7aa8bae87748f1becd045fcb5e1cb1993e978168147d6be8a2cba24a3cc8a2f78e7313f18c87ec2bb238510ebeb47aab50a449fd2ce3dc6b8c0d08d361c102";
26+
let bytes_1 = Vec::from_hex(hex_str_update_1).expect("Invalid hex string");
27+
let bytes_2 = Vec::from_hex(hex_str_update_2).expect("Invalid hex string");
28+
29+
vec![bytes_1, bytes_2]
30+
}
31+
32+
pub fn multiple_updates_diff_vaa_results() -> [(U64, I32, I64, U64, I64, U64); 2] {
33+
[
34+
(
35+
U64::from(1752094858u64),
36+
I32::from_le_bytes((-8i32).to_le_bytes()),
37+
I64::from_le_bytes(35134945i64.to_le_bytes()),
38+
U64::from(36279u64),
39+
I64::from_le_bytes(34931156i64.to_le_bytes()),
40+
U64::from(35632u64),
41+
),
42+
(
43+
U64::from(1751573860u64),
44+
I32::from_le_bytes((-8i32).to_le_bytes()),
45+
I64::from_le_bytes(10985663592646i64.to_le_bytes()),
46+
U64::from(4569386330u64),
47+
I64::from_le_bytes(10977795800000i64.to_le_bytes()),
48+
U64::from(3919318300u64),
49+
),
50+
]
51+
}
52+
2253
pub fn good_update1_results() -> (U64, I32, I64, U64, I64, U64) {
2354
(
2455
U64::from(1751563000u64),

0 commit comments

Comments
 (0)