diff --git a/rust/rbac-registration/src/cardano/cip509/cip509.rs b/rust/rbac-registration/src/cardano/cip509/cip509.rs index e9ec80c279..624974ddc5 100644 --- a/rust/rbac-registration/src/cardano/cip509/cip509.rs +++ b/rust/rbac-registration/src/cardano/cip509/cip509.rs @@ -551,9 +551,8 @@ mod tests { #[test] fn new() { - let block = test::block_1(); - let index = TxnIndex::from(3); - let res = Cip509::new(&block, index, &[]) + let data = test::block_1(); + let res = Cip509::new(&data.block, data.txn_index, &[]) .expect("Failed to get Cip509") .expect("There must be Cip509 in block"); assert!(!res.report.is_problematic(), "{:?}", res.report); @@ -561,8 +560,8 @@ mod tests { #[test] fn from_block() { - let block = test::block_1(); - let res = Cip509::from_block(&block, &[]); + let data = test::block_1(); + let res = Cip509::from_block(&data.block, &[]); assert_eq!(1, res.len()); let cip509 = res.first().unwrap(); assert!(!cip509.report.is_problematic(), "{:?}", cip509.report); diff --git a/rust/rbac-registration/src/cardano/cip509/utils/cip134_uri_set.rs b/rust/rbac-registration/src/cardano/cip509/utils/cip134_uri_set.rs index 52875aafbc..4c6130e94a 100644 --- a/rust/rbac-registration/src/cardano/cip509/utils/cip134_uri_set.rs +++ b/rust/rbac-registration/src/cardano/cip509/utils/cip134_uri_set.rs @@ -266,8 +266,10 @@ mod tests { #[test] fn set_new() { - let block = test::block_1(); - let cip509 = Cip509::new(&block, 3.into(), &[]).unwrap().unwrap(); + let data = test::block_1(); + let cip509 = Cip509::new(&data.block, data.txn_index, &[]) + .unwrap() + .unwrap(); assert!( !cip509.report().is_problematic(), "Failed to decode Cip509: {:?}", @@ -288,7 +290,7 @@ mod tests { // cSpell:disable assert_eq!( uri.uri(), - "web+cardano://addr/stake_test1urs8t0ssa3w9wh90ld5tprp3gurxd487rth2qlqk6ernjqcef4ugr" + format!("web+cardano://addr/{}", data.stake_addr.unwrap()) ); // cSpell:enable let Address::Stake(address) = uri.address() else { diff --git a/rust/rbac-registration/src/cardano/cip509/validation.rs b/rust/rbac-registration/src/cardano/cip509/validation.rs index 8b9a2025ce..0149bf0b10 100644 --- a/rust/rbac-registration/src/cardano/cip509/validation.rs +++ b/rust/rbac-registration/src/cardano/cip509/validation.rs @@ -257,9 +257,9 @@ mod tests { #[test] fn block_1() { - let block = test::block_1(); + let data = test::block_1(); - let mut registrations = Cip509::from_block(&block, &[]); + let mut registrations = Cip509::from_block(&data.block, &[]); assert_eq!(1, registrations.len()); let registration = registrations.pop().unwrap(); @@ -271,30 +271,27 @@ mod tests { assert!(registration.previous_transaction().is_none()); let origin = registration.origin(); - assert_eq!(origin.txn_index(), 3.into()); - assert_eq!(origin.point().slot_or_default(), 77_429_134.into()); + assert_eq!(origin.txn_index(), data.txn_index); + assert_eq!(origin.point().slot_or_default(), data.slot); let (purpose, metadata, _) = registration.consume().unwrap(); - assert_eq!( - purpose, - Uuid::parse_str("ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c").unwrap() - ); + assert_eq!(purpose, Uuid::parse_str(&data.purpose).unwrap()); assert_eq!(1, metadata.role_data.len()); } #[test] fn block_2() { - let block = test::block_2(); + let data = test::block_2(); - let mut registrations = Cip509::from_block(&block, &[]); + let mut registrations = Cip509::from_block(&data.block, &[]); assert_eq!(1, registrations.len()); let registration = registrations.pop().unwrap(); assert!(registration.report().is_problematic()); let origin = registration.origin(); - assert_eq!(origin.txn_index(), 0.into()); - assert_eq!(origin.point().slot_or_default(), 77_171_632.into()); + assert_eq!(origin.txn_index(), data.txn_index); + assert_eq!(origin.point().slot_or_default(), data.slot); // The consume function must return the problem report contained within the registration. let report = registration.consume().unwrap_err(); @@ -305,44 +302,35 @@ mod tests { #[test] fn block_3() { - let block = test::block_3(); + let data = test::block_3(); - let mut registrations = Cip509::from_block(&block, &[]); + let mut registrations = Cip509::from_block(&data.block, &[]); assert_eq!(1, registrations.len()); let registration = registrations.pop().unwrap(); - assert!( - !registration.report().is_problematic(), - "{:?}", - registration.report() - ); + assert!(registration.report().is_problematic()); + assert_eq!( registration.previous_transaction(), - Some( - Blake2b256Hash::from_str( - "4d3f576f26db29139981a69443c2325daa812cc353a31b5a4db794a5bcbb06c2" - ) - .unwrap() - ) + Some(Blake2b256Hash::from_str(data.prv_hash.unwrap().as_str()).unwrap()) ); let origin = registration.origin(); - assert_eq!(origin.txn_index(), 0.into()); - assert_eq!(origin.point().slot_or_default(), 77_170_639.into()); + assert_eq!(origin.txn_index(), data.txn_index); + assert_eq!(origin.point().slot_or_default(), data.slot); - let (purpose, metadata, _) = registration.consume().unwrap(); - assert_eq!( - purpose, - Uuid::parse_str("ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c").unwrap() - ); - assert_eq!(1, metadata.role_data.len()); + let report = registration.consume().unwrap_err(); + assert!(report.is_problematic()); + let report = format!("{report:?}"); + assert!(report + .contains("Role payment key reference index (1) is not found in transaction outputs")); } #[test] fn block_4() { - let block = test::block_4(); + let data = test::block_4(); - let mut registrations = Cip509::from_block(&block, &[]); + let mut registrations = Cip509::from_block(&data.block, &[]); assert_eq!(1, registrations.len()); let registration = registrations.pop().unwrap(); @@ -353,30 +341,24 @@ mod tests { ); assert_eq!( registration.previous_transaction(), - Some( - Blake2b256Hash::from_str( - "6695b9cac9230af5c8ee50747b1ca3c78a854d181c7e5c6c371de01b80274d31" - ) - .unwrap() - ) + Some(Blake2b256Hash::from_str(data.prv_hash.unwrap().as_str()).unwrap()) ); let origin = registration.origin(); - assert_eq!(origin.txn_index(), 1.into()); - assert_eq!(origin.point().slot_or_default(), 77_436_369.into()); + assert_eq!(origin.txn_index(), data.txn_index); + assert_eq!(origin.point().slot_or_default(), data.slot); let (purpose, metadata, _) = registration.consume().unwrap(); - assert_eq!( - purpose, - Uuid::parse_str("ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c").unwrap() - ); + assert_eq!(purpose, Uuid::parse_str(&data.purpose).unwrap()); assert_eq!(1, metadata.role_data.len()); } #[test] fn extract_stake_addresses_from_metadata() { - let block = test::block_1(); - let cip509 = Cip509::new(&block, 3.into(), &[]).unwrap().unwrap(); + let data = test::block_1(); + let cip509 = Cip509::new(&data.block, data.txn_index, &[]) + .unwrap() + .unwrap(); assert!( !cip509.report().is_problematic(), "Failed to decode Cip509: {:?}", diff --git a/rust/rbac-registration/src/cardano/cip509/x509_chunks.rs b/rust/rbac-registration/src/cardano/cip509/x509_chunks.rs index 977ebf9daf..92a8d56d94 100644 --- a/rust/rbac-registration/src/cardano/cip509/x509_chunks.rs +++ b/rust/rbac-registration/src/cardano/cip509/x509_chunks.rs @@ -137,8 +137,8 @@ mod tests { let mut report = ProblemReport::new("X509Chunks"); // We don't care about actual values in the context, all we want is to check the decoding // of differently compressed data. - let block = test::block_3(); - let transactions = block.txs(); + let data = test::block_3(); + let transactions = data.block.txs(); let MultiEraTx::Conway(txn) = transactions.first().unwrap() else { panic!("Unexpected transaction type"); }; @@ -170,8 +170,8 @@ mod tests { let mut report = ProblemReport::new("X509Chunks"); // We don't care about actual values in the context, all we want is to check the decoding // of differently compressed data. - let block = test::block_3(); - let transactions = block.txs(); + let data = test::block_3(); + let transactions = data.block.txs(); let MultiEraTx::Conway(txn) = transactions.first().unwrap() else { panic!("Unexpected transaction type"); }; @@ -203,8 +203,8 @@ mod tests { let mut report = ProblemReport::new("X509Chunks"); // We don't care about actual values in the context, all we want is to check the decoding // of differently compressed data. - let block = test::block_3(); - let transactions = block.txs(); + let data = test::block_3(); + let transactions = data.block.txs(); let MultiEraTx::Conway(txn) = transactions.first().unwrap() else { panic!("Unexpected transaction type"); }; diff --git a/rust/rbac-registration/src/registration/cardano/mod.rs b/rust/rbac-registration/src/registration/cardano/mod.rs index 9cc4ad9b8d..5250cb6f85 100644 --- a/rust/rbac-registration/src/registration/cardano/mod.rs +++ b/rust/rbac-registration/src/registration/cardano/mod.rs @@ -202,7 +202,8 @@ impl RegistrationChainInner { // Previous transaction ID in the CIP509 should equal to the current transaction ID // or else it is not a part of the chain if prv_tx_id == self.current_tx_id_hash { - new_inner.current_tx_id_hash = prv_tx_id; + // Update the current transaction ID hash + new_inner.current_tx_id_hash = cip509.txn_hash(); } else { bail!("Invalid previous transaction ID, not a part of this registration chain"); } @@ -415,8 +416,10 @@ mod test { #[test] fn multiple_registrations() { - let block = test::block_1(); - let registration = Cip509::new(&block, 3.into(), &[]).unwrap().unwrap(); + let data = test::block_1(); + let registration = Cip509::new(&data.block, data.txn_index, &[]) + .unwrap() + .unwrap(); assert!( !registration.report().is_problematic(), "{:#?}", @@ -425,18 +428,17 @@ mod test { // Create a chain with the first registration. let chain = RegistrationChain::new(registration).unwrap(); - assert_eq!(chain.purpose(), &[Uuid::parse_str( - "ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c" - ) - .unwrap()]); + assert_eq!(chain.purpose(), &[Uuid::parse_str(&data.purpose).unwrap()]); assert_eq!(1, chain.x509_certs().len()); let origin = &chain.x509_certs().get(&0).unwrap().0; - assert_eq!(origin.point().slot_or_default(), 77_429_134.into()); - assert_eq!(origin.txn_index(), 3.into()); + assert_eq!(origin.point().slot_or_default(), data.slot); + assert_eq!(origin.txn_index(), data.txn_index); // Try to add an invalid registration. - let block = test::block_2(); - let registration = Cip509::new(&block, 0.into(), &[]).unwrap().unwrap(); + let data = test::block_2(); + let registration = Cip509::new(&data.block, data.txn_index, &[]) + .unwrap() + .unwrap(); assert!(registration.report().is_problematic()); let error = chain.update(registration).unwrap_err(); @@ -448,13 +450,21 @@ mod test { ); // Add the second registration. - let block = test::block_4(); - let registration = Cip509::new(&block, 1.into(), &[]).unwrap().unwrap(); + let data = test::block_4(); + let registration = Cip509::new(&data.block, data.txn_index, &[]) + .unwrap() + .unwrap(); assert!( !registration.report().is_problematic(), "{:#?}", registration.report() ); - chain.update(registration).unwrap(); + let update = chain.update(registration).unwrap(); + + // Current tx hash should updated to RBAC data in block 4 + assert_eq!(update.current_tx_id_hash().to_string(), data.tx_hash); + assert!(update + .role_data() + .contains_key(&RoleNumber::from(data.role))); } } diff --git a/rust/rbac-registration/src/test_data/cardano/conway_1.block b/rust/rbac-registration/src/test_data/cardano/conway_1.block index 5361450212..aac9e448c7 100644 --- a/rust/rbac-registration/src/test_data/cardano/conway_1.block +++ b/rust/rbac-registration/src/test_data/cardano/conway_1.block @@ -1 +1 @@ -820785828a1a002cf1361a049d798e5820f8105b5f1ff5805a1ad73a4bed95297c11a530957fd124fe116d847b9a8a2d18582054ca56226c90d5544bf6f558026b814027b634e60de0bc215237944110569c6c582037d6147adbf2907948d66f9e4751774bbe9d6c4ad562ce04ef66f0fc1e7ac3018258408efeee2071a87217e4e5d45c8afcefbca69a9f7521be99cf007cadd5657436f05e801b96f75465cc631dbca05f58c0f44406f3bf80f055ac47285dfe4e72f5185850dc503d811e615d063298b2688dfcdeb4c82b82a6509672ad7eaeafa87ec8af4144530d7ad542daf0f007b3ba2133ea5abebb253ec95180f3805eefd1a1cfebafd497bf0215506912fd50497db4ba150e19173458200cb42de7dcf6a9dd27dac89dd10e98af017f352c5d4c9d995fea811ed22221d484582074deff4c062c74d426154a221193a5fb9472c401d42217b07d617c03cc2e9bb00819023f584049885039bea644a49bce5493fd4dffb0c835074820bf1912e3b372bfbba36904c7a47ae3ad59da8148876d83868488b94fa81df458fd3bf3d3706f4ec11a5d00820a005901c0509399cc5ca4713330d1370f986def5b3096f61c96f3de54015334c5abccad85c0b4c99a898399ccdf5979a0b810be83479c2b4430c665d350878f08c1bdc80b7c4cdd132322a7ccf28796aedaf1767c7ba8d9029430f8e3ecc88963f671a07163f7d2677e3c31db8af39c51732fd158d4784bd48381006d4a892d186266279241a9e786e2b4fe28d83a9890694670950c6d981e96a1d182d5e02241cf36f6278ff8e7cf6206735d54e8bd026f696d3b46d31268357318c4e2a91b084b7a49975bf06ec920ca357a17f85d6fca8ac7b388c599e542ec32f0361e2fda5c8d43e3e3b52e31761953c114ca9f952eff1195245df3aeef714de2bc5dab7e971b325b99ed37346741bf75ef68b201a9a9f85978d83ad602e9c8e31987395473eb87b2f5a34c30882a1812dc5081f04e731071cb8a58c5c7fc4ba168028154b07827faa64a6fd86e0594804c8e74213860a0d0a602306b8468a2f7ee112b380f143437227bdc37e8efee149b5bbe436f1b1d23a1afecd4c2d17a2484827f655b85228d587e54d26530645bb4de4aa4a706d0676974ac64fa4c2bc158adecd78efbed7f7522e0627056391093fcf37967f35f3479878ef3e731e21eac3d787f7a2af2c784ab00828258206f135b9e227de387653f19561fdc0a014eacdb9c30c5d8da5fb8adb302f24c6d01825820dee38df4b12e03388390d6452765086e4348da004f13f4b3dff24cc2fdd99055000182a300581d70bdc22da682cd9aceed5fd48914789fc98c94abc79fed8b40cb8c431401821a001e8480a1581cc13ddf298a5d25aff2933695987912b4f1748bdf0df8e4b5d85f2360a14e50524550524f445f4f5241434c4501028201d81856d8799fd8799f1a0bf5b443ff1b0000019386d2d7a8ff82581d60c0359ebb7d0688d79064bd118c99c8b87b5853e3af59245bb97e84d21b000000011722b776021a0006a164031a049d7c7d081a049d75760b582078c96a0e0f77a9be3baedbc5e24fe7c5f4de3f13dc79ada0676d7a0fd12fa6d90d818258206f135b9e227de387653f19561fdc0a014eacdb9c30c5d8da5fb8adb302f24c6d010e81581cc0359ebb7d0688d79064bd118c99c8b87b5853e3af59245bb97e84d20f001082581d60c0359ebb7d0688d79064bd118c99c8b87b5853e3af59245bb97e84d21b0000000116dd0d9a111a004c4b40a900d9010282825820b7141e4950cd9311eb083caffda6dad64ca0956e44e2855316d4c1553da230e800825820b7141e4950cd9311eb083caffda6dad64ca0956e44e2855316d4c1553da230e8010dd9010281825820688a09a2a039214f244e8f8eed49bf4f190104ebe32f6d9680277d70901c20220112d9010281825820c47f5b7661fd8295674076b8b76db11d08d4ddafb2529a6159e059ed6128af73010182a300581d701db5ea0b1cb006f32a3c3f6438f6c4b3df7b2018b965a63d29b54d0301821a001b9f18a1581caa7f3d7240a9d06e947fcf387957e7f01fd4484a432a4b879cdbf24aa14d446a65644f7261636c654e465401028201d81858a6d8799f5840fe28ac9c796a0157a6da71b9738beae6a085d1debdd682838584e03592e6581a50bc341e879b8b197a88a6d175a01e8d51c72c4acbf3fbaac3fb7158e3c2500fd8799fd8799f1a00030d401a000381f7ffd8799fd8799fd87a9f1b00000193858940a8ffd87a80ffd8799fd87a9f1b000001938596fc48ffd87a80ffff43555344ff581caa7f3d7240a9d06e947fcf387957e7f01fd4484a432a4b879cdbf24aff82583900f8e2356e21af3563556c167c31bcc00f9fc061a8a852a16a42ffcc7927ce10b87147e3e19a5dc622b6a535ab9ce01cb2d586a3a690a74c0e1a00f81c6a021a000426b4031a049d7c7d081a049d78f90ed9010281581cf8e2356e21af3563556c167c31bcc00f9fc061a8a852a16a42ffcc790b5820cc99e113594d6781a6f5a4a16205a0ae3072c1f4414121e08df388fdeb656fd9a700d9010282825820d59aa48a2208563e6fac203419186430c87b5c07ed72c5c1947f5c2b8cdd810600825820ffc0aaef9f13145bee27320c87410bd607c9eeb7f9d624ad4d18266227ac9596010183a300581d709dcb619aefe878561bc3067b7a0e923f1ce961c38b7bfc1a283a873e01821a001bafeea1581cec64872c1965bbbaa8868aef2bd9a343b821a9f2c7787ea096f62262a154000643b043495036382047656e657261746f727301028201d8185884d8799fa6446e616d6549496d616765204e46544b6465736372697074696f6e514173736574204465736372697074696f6e45696d6167654a697066733a2f2f2e2e2e496d656469615479706549696d6167652f706e6744726f6c654475736572435f706b581c8e3b54aca70c6778daca5f9ec4e99a7817052e64f23979080f97beca01ff82583900f7a232fecd012dc3c556587593c5a5cbed826a49ce06c19ece9f350cb74a4ce22b780d2c9139c32806dd402df8947de0303ed3f976136a231a000f4240825839008e3b54aca70c6778daca5f9ec4e99a7817052e64f23979080f97beca718188b968725132a2cf6bb0925bad1f4b30e000990e526b2e9443611a24ad8844021a0003bf5c0b58201cf1170ee1369bd082ae8d39b0d99db7caacc10a79b41cde1122bd0f0c7e5bf00dd90102818258206a3f0a51813098b342c8fa71b5766922ca2cef531cdcf925da83c990c82dcb75050ed9010281581c8e3b54aca70c6778daca5f9ec4e99a7817052e64f23979080f97beca12d90102818258208a4ad7d31a93bc9c25430056bc7910b4cfe706bcd099e59e2332e041ade7132c00a600818258205bb5b41eae680aca501bf92d2830fef5dbe9ef7d74d605c018899031a7f74463000181a200583900eb21979c03eed7207020b2a0b47565b5aafb1a2c3849b59a1fa8e6c5e075be10ec5c575caffb68b08c31470666d4fe1aeea07c16d6473903011b000000024f96ecf5021a0002fea1075820b1553a57d1cbb2ac233e98a4700d1dfd7972210cfd4e248ab4ade30afefd00d30e81581ce075be10ec5c575caffb68b08c31470666d4fe1aeea07c16d64739030f0084a30081825820ef603099b2579d5ca273dce1f1257c11f054664ba972fd61c008b58a1b2325c158405faba20a8a371470fac259901656b63bb81201e1ef6768809b581ff0bab12cc6f236e6a52923e0ce4772f8e6d4c88db03da5db3d8b8a1770b7b0eb5e4a7e9b0f0681590bd7590bd401000033232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323233027222232325335333006533357346074607e0022646605a60586ae84004dd69aba135744002607c00206e64a666ae68c0ecc1000044c8c8c848cc00400c008c0b8d5d09aba2002375a6ae84004c0fc0040e0dd50022999ab9a303a303f002132321233001003002357426ae88c0fc00cd5d0981f00101b8890008a99ab9c490103505435001637540086ea8004cc09c8888c8d4014888d40188c88c94cd54cd4ccd54c0d40e0c0a80a4c0ac01ccc0b08004d40048888888888880100e44cd5ce24812d546865207472616e73616374696f6e206973206e6f74207369676e6564206279206f7261636c65206f776e657200030132533553355335333553036039302b02a253335302135001202103e215333573466ebcc118cd5d0182319aba0375000a6ec4080cd5d01ba835500b03937620400022a66a666036446a0044466603e446a00444a666ae68c12c004400c4cc11848ccc00401c00c00800c00c0040c0cd54c0e80ec8d400488cc0e0008cd54c0f40f88d400488cc0ec008ccd4004dc0a4000e048cdc0800a400000266aa607407646a0024466070004666a002466aa607c07e46a0024466078004604600200244666038066004002466aa607c07e46a0024466078004604000200266602e05c666050400204e6a004404e0060784426a004444a66a0082a666ae68cdd78018238a999ab9a3375e00408e2a666ae68cdc4000a400006e2666ae68cdc4800a410125e80206a07006e06e44072064407e6044014074266ae712401024c310003103a1335738921156f757470757420646f6573206e6f74206d6174636800031153355333573466e2400d20001335738921165072696365206d75737420626520706f7369746976650003103a15335533535353301275a6a00407e06e44a666a00442a666ae68cdc419b8000100935500c03a0331333573466e24004d540300e80c40d00c80c84d4cc049d69a80101f911a801112999a99980980a980f19b8100900b0021533500113330120150030081333012015003008034133301201500300803003a13357389212345787069726174696f6e2074696d65206973206e6f742070726f7065726c792073657400031030030333025200102435302635533530270092100116036202402f302d350080393302f3016337000020060542a666a602e6aa66a60320022602602a442a66a0022004442602e032402e02842a66a6666666ae900048c94ccd5cd181d98200008991999aab9f001202d23233335573e002405e46666aae7cd5d1001119299a9999999aba400123253335734608660900022646666aae7c00480d48cccd55cf9aba20022533530203574200642605e00206a406c07a078608e0020646ea800880c880c880c880c80e4854cd4c070d5d08029098159981a8010008188181aba1005203003703635744004068607e0020546ea800880a880a880a880a80c48400405480548c94ccd5cd181b181d800899191919091998008028018011bad357426ae88008dd69aba10013574460760046ae84c0e80040ccdd50009111a801111a801912999a9998040038020010a99a8018800819814819911192999a80190a999a80190a999a80290980200b0980180a8a999a80210980200b0980180a80c0060a999a80210980180a8980100a0a999a80190980180a8980100a00b8a999a801100700b0068a999a80110a999a80210980180a8980100a0a999a80190980180a8980100a00b8058a999a80190980100a098008098a999a80110980100a0980080980b12999a80110a999a80210a999a802109998040038010008b0b0b0060a999a80190a999a801909998038030010008b0b0b00580691a80091111111003891999999980091199ab9a3370e00400204004644a666ae68cdc38010008098a999ab9a3371200400201401044666ae68cdc400100081001191199ab9a3371200400204004644666ae68cdc480100081181011199ab9a3371000400204604044a666ae68cdc480100088008801112999ab9a33712004002200420024464a666ae68c0c8c0dc0044c8c8cc0994ccd5cd181a181c801099813198038029aba130380023006357426ae88c0e00080c54ccd5cd181a181c800899813198038029aba130380013006357426ae88c0e00040c4dd51aba135744606e0046ea8d5d0981b0008179baa0012325333573460620020522a666ae68c0c000407c0b4c0d0dd50009119192999ab9a303300100815333573460640022601460086ae84c0d400854ccd5cd1818800803017181a8009baa00122233355302302702a335530260272350012233024002300b001333553023027223500222533533355302802b301d01c235001223300a002005006100313302e00400301c001335530260272350012233024002330382253350011300a003221350022253353300c002008112223300200a0041300600300400211009212223001004112220012230302253350011003221330060023004001212223003004233333335748002403040304030460206eb4008806007c94cd5ce2481286578706563746564206f6e6c7920612073696e676c6520636f6e74696e75696e67206f7574707574001615335738920117496e76616c696420646174756d20696e206f757470757400164988880088c8c94ccd5cd1813000899091118010021aba13028002153335734604a002264244460020086ae84c0a000854ccd5cd181200080201098140009baa00111003253353007001213335530150192235300535300935003019222200422353007350042222004225333573466ebc01000854ccd5cd19baf0030011330220060051005100500e3300d00735300f3500201b22222222222200a15335738921024c660016232533357346040604a0022646424660020060046ae84d5d118128011aba1302400101d3754002444006660024002eb4888cc09088cccd55cf80090071191980e9980a180398138009803181300098021aba2003357420040306eac0048c94ccd5cd180e181080089919191919190919998008038028018011aba1357440046ae84004d5d10011aba10013574460420046ae84c080004064dd5000919191999aa999ab9a3370e90030008990911118020029aba13020002153335734603c00226424444600400a6ae84c08000854ccd5cd180e8008990911118008029aba13020002153335734603800226424444600600a6ae84c0800080648034803480348ccd54c048054cc03c894cd40088400c400403494ccd5cd19baf002350010181300600100d3300923253335734603e60480022646424660020060046ae84d5d118120011aba1302300101c37540026a60166a00802e44444444444401860400026ea8d40040408488c00800c48cc004894cd400804c40040208cc02488ccd400c04c008004d400403488ccd5cd19baf002001004007223301c2233335573e002400c466028600a6ae84008c00cd5d10010081bac001100d23253335734602860320022646464646464646464646464646464646464646464642466666666666600202e02a02602201e01a01601200e00a0060046ae84d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d1180c8011aba1301800101137540022002200c464a666ae68c044c0580044dd69aba1301500100e37540024424660020060044446006600400260244422444a66a00220044426600a004666aa600e01600a00800260224422444a66a00226a00600c442666a00a0186008004666aa600e01400a00800244002601e442244a66a00200c44266014600800466aa600c00e00800224002220024400444244660020080062a66ae712411f496e76616c696420646174756d20746f20636865636b4f776e4f757470757400161533573892010350543100162222222222220054c1014000370e90001b8748008dc3a40086e9520005573caae748c8c00400488cc00cc00800800530012cd8799f581cc0359ebb7d0688d79064bd118c99c8b87b5853e3af59245bb97e84d21a000dbba01a01499700ff00010581840001d8799f1b00000193858940a8d8799f1a0bf5b443ffff821a001862581a18087eb7a200d9010281825820c58b6e67ad72d3e4de04c0c143b15e0e60573ea9b740cf0a8fbfafb0475d50fd5840e8a05b2cc57a1952d1c3179b2b5019c1511fd49590dd2967b1fc5b3469251592698aca04e5b7a190b94f1d4a2545dce999aaa0921b50705e022bf02eb4b8720a05a182000082d87980821a000810e71a0b99de0ea20081825820f78c0ef2db02673d535e54b3e534281bce897181a3725593eb73f9d13cc7344a58407ca5fef9ff8a97006259f3308ea0320b2f361aaf38992c2316caea9bd62a8de30c99b9be9316fa36aca04a58eeaedc5f39335d714c05e09f3e282071466e4c0405a182000082d87980821a000619741a0893bcdfa100828258208469288efa6f9cb49040b43dcff93f40969d72433f751afde50235012c0160205840bf6cb0ebd00118d87bd8ea9a0e70f9f7954a3450dbbb2ba76a1558b1f7664d8c3dff9da85419f1f6a50e1a041d86de98ebcb511b22d885e0e092ffa7dc78910182582076af5530fa318a370820270031d1838545a4ceed8696510627563d1114d4182b58401f42ca3f529ee9765330674a56c3d70a885a8c62912a18145f51afaafb2da78b6319c70aa432f5f8d976a4d9dc309b1f17bcf89af1d08e939aef43f7bbea4004a103a11901fda40050ca7a1457ef9f4c7f9c747f8c4a4cfa6c0150d127265b6c2024bf7e254571bce41fa70b8758401b3f020064404f2b8fc22b3919605fb86cb9d3c7573ce58ffaedb716517ba0020ab9162510786a81643723fe5297dac6f96dd080032c60107110fa2fe7ddb570584018140643422a31e1cde248145cc8c55f5c53022b8e46c14d10282a880206d080033cc1bd382b1d51525a62210b69716949294b6305852895928c82f7b73cc70c58402f7d155c03e2abf9fd94d6e23b41f5ce57f595c8faff16fe899abe2bfe78d839d09b90a87fcd96f55ffbcfc99674fc5a392896703ceb8ffacb6b193beb1bd9a858405c94f4e2de6d001ac5813a71a03a962c1408a0581c2800093e112d939167909cae2d6af8fd08809295d4a04b360a737114e2c8d4c1d74f514cccc1d939502c6858409e6ac7cd4724420283e483c583821ca4c214c2dc15c4bd9d6582fd03fda5dc4202c39da5e5e50283dd2503bc03bc645d027d3d039c5c5ca543dc021ffd8d347b58408b716dad363d2b3776d27fc3acb2a63d1f99d49dfffebca526c518ba311787c30c97732f77b04e2844c7c3c5aa8bfdcd526d3e822da4d57aba35b15c1445cf0a579cc523cdd99bb7a177061a2110288883c0d971cebfea00186358400cd4f3828590fb603b04ce534efbce76320f0828b3773a3d5b80f0f8da8a3b134b33ab6e621c9a4e749f6fd61fede6c1ee6210c2264c176cdd8271e39a116d0680 \ No newline at end of file +820785828a1a002f3e101a04dab0ba582057267cefbe9c4df976afd8718951d6bca46a733fbfbdb870ce65e4418f4004055820d7d7b1380f1598d8e233f0f7c8db2ccc752b7b003fb27b5d3f8db6c7eb4142155820b410918b95bb887872a7330dc77ac89170c5959b649b572ff4635ea9716bd7418258407b3a69fdc616018f64283f353df081d398515a1c862e348ec95c15768c58f3ce14a0955b2ef1bfa4c801eee71d390b36b2a8aca25d5b72b4632777dfaa111bf25850fffa2a73dc2357ce1495fe01242c9ab8c421484ed1b25e73da79f4620dd860cdf374e868f93fd159e62389fb91eaf764384baa3cf29c6474b66bc8710ba7556c47a711563252d50d5dd8d7072ef02b0c190dd15820ef440e0bd4d2c5ebe2ad6c595c1a9346b9f52e2bd72dcdaf11c6f6aa7900f0668458205727b34eedaf299cf4d12317349dc588f645c5be830e626c25f113491357e63c0419024e584017be8e4be9a860b7c498e269b1a860f796ff7058cff45f414b2586d2e6b3d60d11e282fcda31ded3b7089a2b10caf2a0cc1dd5a1e64e67ebb995653bc4bb2c0a820a015901c0883182a11b774953279b663ad2ea42769e11433dd72b8e9e6ea671aafe8110964cc61036cabbea4107d7552b07fed735ae99070021f6ae47cd50d4dd34341000f30931feb5459e762e03b9bb99d7034897e1a83eb278748e057cb5a1adfbde00d1b7b762d4549c45e9bd7dcc82117c35bb9708ae08ffc791b4e5d3b237b79f600fdff973e059a5677b25a4392287f024a06b399a4dfb028e754d67efd5555a2e891b1af2893267ce6c58c4b47e480889d7198b0ee1f6a136bce203d1d430cf69aee21341d300298552fd457d228fef0e6a55c00febcae11d56b674ebd5292ebc53360da3cad5e2cfea0c3df7b3434c25556e8f33dada1371dc60a69cfe9b6b434c868f7f020f191e56a4aecb67b3a713f0bfd6eb009918eae971e7e27500b008d1c158aa104cd1cca7461e6cf864cd53a33b957e671a21c4c8d0e3850d6132e98e50a5e3b198460ddeea4060d2515c71549e1855906a9487b62639e9078c2b0fa3c8b6b91b61f8505d1cbfaefec0943422a61680bb1131f192580f5f3468b4d3815b58519e88393d1ad558a95bd1cbcaa294892f827be19cc50febf5ac91e8e1a2de1f86f138d0b93972152ec77476717d1d4a7cff755b7fa8d0f6d3fe325fd386a4008182582063489a8ac08693104f22f88cb2b13fb79679b8da6b25c887b09635408c8b082901018282583900b2ffee3a36f2569bf34755bc08ecd1e28fae3736d02255a002380cebbdc8ef5703d91aabe59366750cb113eea29998d834efab41f24617ab1a00e4e1c082583900ff1cf688bf7b73b4cfdd3233b7c1f528d653fc22ad0071d904930687713ce1e3543f3507eb7c305bef3251f5b175a7ec7956087d417eace41b000000165370717e021a0002922d031a04dacc7dab008282582010fe063905f10dcf28a9c9bc6755d1f471be33d9b9c0ed72339de973bba9f9b000825820e28223c75c142a18cfc5a3b4223a49e51b7e15ace0a4a491f5d061be0b137d2b020183a300581d703f89c436844cd0acd2714201817836b2cd16b082e03e3a21bb69e5ad01821a001e8480a1581c2b556df9f37c04ef31b8f7f581c4e48174adcf5041e8e52497d81556a1484e6f64654665656401028201d818583cd87a9fd8799f581c26a0bd848342b6307f04b9de7458c3a65e9cdf7ba4a40292b75a2ec0d8799fd8799f1a001323bd1b0000019474a9fc92ffffffff82581d6026a0bd848342b6307f04b9de7458c3a65e9cdf7ba4a40292b75a2ec01a0089544082581d6026a0bd848342b6307f04b9de7458c3a65e9cdf7ba4a40292b75a2ec01b00000001f285b211021a00075743031a04dab0e6081a04dab06e0b5820f6e763e3fe3c5e7bdf62695c7e29bf9a0db2294216d2b385c1b678eeb4111ed00d81825820d8eb493832de73a1755d70545a14474069d18d5fbc403a5b54694c2e0f097ebd020e81581c26a0bd848342b6307f04b9de7458c3a65e9cdf7ba4a40292b75a2ec01082581d6026a0bd848342b6307f04b9de7458c3a65e9cdf7ba4a40292b75a2ec01a004ad208111a00370c3f12818258201a28375b01a8928f21a87598e24165ab5806e7c3e77a5eb4d78c56e3cf07894c00a6008182582029f48df6702db5acbcc7031135b67333376a1e5308c9da6afce24176eb0c5e01000181a200583900eb21979c03eed7207020b2a0b47565b5aafb1a2c3849b59a1fa8e6c5e075be10ec5c575caffb68b08c31470666d4fe1aeea07c16d6473903011b000000024f87d850021a0002fea10758204ca8dd8048b9d1ba0d6d85bb86cf1b41a6a54dfedaa873274799a014e174c8030e81581ce075be10ec5c575caffb68b08c31470666d4fe1aeea07c16d64739030f00a3008282582021b4e16a041f033299105369489234571f99d4c64f2567df2214da6f963f45320182582021b4e16a041f033299105369489234571f99d4c64f2567df2214da6f963f453202018382583900d582566489603578557be3f3cbe882c0c4ec4e4d8cc1958f7c7469c815bbc381cc20ab57de367dd4f1662ed7bcaab1571548d265d2c6062c1a002dc6c0825839002abc6c324eb4f6b669e3cfe02308de79fef74c62defbedabcbdf30229083f9e63fce4dee278c9fe348ce4b4130ffc21d8171366cee66ae98821a00150bd0a1581c6b728428c0eb014949d72c94449bbef4b10b6ad2b1b86bd4e92476f0a1494c616365436f696e32190c54825839002abc6c324eb4f6b669e3cfe02308de79fef74c62defbedabcbdf30229083f9e63fce4dee278c9fe348ce4b4130ffc21d8171366cee66ae981b00000003e750f234021a0002aa69a40082825820933822b50843b362649d3d00f1ead0dbe0830902736540eb7ba041319e6485f701825820eb39f83edcae5816a3f8fdbb46fa2d1cf80f8a8cc54d3251ce24a5bb9489ba8700018282583900c39ef6ffc8ba8adcc83bb8808c9fad2acb780104dc15b0994c187408e9474768506d883ca01ead46f2ea9282a71f78ba5fffa9a1f0638224821a0011d28aa1581c63f01fe6cd68ec6438c95a46cea4a6cd27efb791b5e8cc1fa92af329a14b4962696c65636f696e3137018258390032194a351dd37ae9b2df0800b1e871bf8897b6e434edf2cac3549439f097f10814913099fa64ade1d6a0fe06c61b7b3bd126b6dae1ce9f69821a74649144a5581c06b913e3a939a9228b5f72ce08f488305e1907f2034d9fbb58d468aea14c486f736b794b69636b31333601581c1065b4d177376927ca03922b2037bf382a6588c97c0eb6a3e358bab5a1474265617230323001581c5c677ba4dd295d9286e0e22786fea9ed735a6ae9c07e7a45ae4d95c8a1494962696c65636f696e190869581c63f01fe6cd68ec6438c95a46cea4a6cd27efb791b5e8cc1fa92af329a14654494631343801581c8b7911f9e8464370186392e122adaa70610213b1552f666c64b7e830a14a43424c4b516d4e7975671902bc021a0002c489031a04dacc8eab008382582043a4629aa23f05d785fe2dc789d3734f5b77909c23e7c5305249ac264d3a316a0082582043a4629aa23f05d785fe2dc789d3734f5b77909c23e7c5305249ac264d3a316a02825820ce702c6760c30dc6884c5cc07792069d61fa1a3fa3e0b2512b477ec17da96634020183a300581d704e3b75eb68829ca9e63b541f3645f78afe8d119932a7a2528171e74901821a001e8480a1581c5cf48c225e057f8da0787eae1e2bc62a1cf1d2ee34c7e2a9498b19b5a1484e6f64654665656401028201d8185840d87a9fd8799f581c5309fa786856c1262d095b89adf64fe8a5255ad19142c9c537359e41d8799fd8799f1b00000017ea8c5c381b0000019474aa9f62ffffffff82581d605309fa786856c1262d095b89adf64fe8a5255ad19142c9c537359e411a0089544082581d605309fa786856c1262d095b89adf64fe8a5255ad19142c9c537359e411a00e137aa021a000773cf031a04dab0e6081a04dab06e0b582022dd04285d560fe687d413106acee9d22fc87606499697cc39754bbbbef02a4c0d8182582053728c906f7d03f6e69d2147a724691709e48c5e46b1129a9a3ee3e1d0295ba6020e81581c5309fa786856c1262d095b89adf64fe8a5255ad19142c9c537359e411082581d605309fa786856c1262d095b89adf64fe8a5255ad19142c9c537359e411a004acea8111a00370c421281825820efd8a48f69e5270cb73b438067e1b566d39758329a45e5d6d36755f2c73261840086a10081825820086239d59976ce96fb61e480162f4771a1e60df815c08cb4d22fa573cdfdc85758404b840aa4d378426a20227a572916d9734a504e1b23dbd1eb638cd67270bfa0f598113537fdf7c7a563b48687f5d99320c59bc7a34708659cf352bb2b9585400da2008182582035fc0ef906431f98d4ce729be755d901efafcdfba59af47cbe27b02cab0e22c15840777fe7ec3946a320d17e3b9b2b1191063ba473405158fa8d1e9ff9f01438646f091bab6ba2edf9f80f04d8b8939be3beceb778b9b140dc09c788979a02f2240105a182000082d87980821a001184061a0f1006c2a100828258208469288efa6f9cb49040b43dcff93f40969d72433f751afde50235012c01602058409cc89d718f6d2b4c084f053d3332fad066a69978624b15e836098c60711c3b9be02846ca5e9e42368e5f1ad8501c69fdc4342e3e308ef8600b675e99d8f3060082582076af5530fa318a370820270031d1838545a4ceed8696510627563d1114d4182b5840a686b087c427b04d69b69e7440c197b00a1007ff2b24223847f66c6935f2714ae1f7721576b02077730298ac9770d929110422f4fc999b6722281fbeb7980a00a10081825820e4552a321f7fb96d3dc6cc7addda1f5f1fc5ec98ae9c9eaa6e8422020aee762358407cc697e19a2c7d5913f54d16aaf09a61f59ca7120cdc4f2f95c12e4a3260eb270aa8227806d70b9a1ff39597a2b172d0a5327a7da4c7108ac9124f938c068a07a1008182582085ac1c47043b9d42e3ad3ea9aa03aaa15d1a15fae26b34008217dd763552bcdb5840556ae3c4a8e1ecec95ec3a6e8ead4697b4820754e6eeefdf6bacd2a6f390cdd372c7e9f68a23c37de9a0a8a5c34dca517d6311b9a609eb8da1cff8fdcd5dbc0ba200818258204f3ac10ca0bd5ccb25d183b9b2ddb5a4ca3a2fcd8f8368247d3cb585013526af5840d299b75ef9ba620229ac85538c56931f79c3a9ce7ce71974832246315ca00fb6c426807ce1505bac5951975c26014debe89e58f26e2828aeea6d503e2402f50605a182000082d87980821a0012a1311a10500e4fa102a11901fda40050ca7a1457ef9f4c7f9c747f8c4a4cfa6c01507a8a2d679a157ca9d70ddb18e06e65f00b8758401b3e020064282f1335938a5a31289c2dac13fd0361b9d3673ce57ffbedb75f62694005146ab5a02510786a49ba4d457f154650e9faea2c299039e2ff8148fcb758401c6f9e979410979090821b8ed90169194947aa00844279202b23992125a329a62007b2a0008a24b90626baca880780d00bba23dec02bd7a28f0f44dc8a7bf8785840fddc7d2cf6d057498688f1427f3ced58e31dd47c6f3bf3bdd9e4cfcbca8f32471e8e7e787cf566d441b8f8a2d75370fe4f5f2f52fafdeccd51587a7f47cdef815840b5fdf7b7efbd387d0a615b5d5b229701b900c8d9981aab4b91a3801c122971ab3ac6130f2235b696a8293e0f015475490e26ad6915d452478a0c4b787c5f57d75840120a0575c5c6a945d47c041228e68d030c2b71abf0a960f8000ec50317a002373a815652dcbdbd509c81083942b62715e5b18465549a3b41472fddfe8bec935b58401cb6f11e7e5cb93f28fd93cba5ab01871eeccdaf13fbcc9afc9a3c93fb72a35226e7f528daf4b4d57ccde12ebd752ca1ac4fb1cc25d1fb5edd1f62a7849e097957bf513adbac791b3d0ab92c26262e5210931453a07caa03186358409e6a406f0b261eb506abfa58744862a76193e9a0adae165dca5ee0c53c41e6ef0207c44c3684c5f30145710ae7220f20782039742c84962220b2dc845713960f80 \ No newline at end of file diff --git a/rust/rbac-registration/src/test_data/cardano/conway_4.block b/rust/rbac-registration/src/test_data/cardano/conway_4.block index b16edd16df..5488866082 100644 --- a/rust/rbac-registration/src/test_data/cardano/conway_4.block +++ b/rust/rbac-registration/src/test_data/cardano/conway_4.block @@ -1 +1 @@ -820785828a1a002cf24d1a049d95d15820a82d38572884fc69c5b1105dd190651e4fc5c821878a1a166b6bca897983b83d58206f281ba212f118ac018aaeb805dda9f6fd54fe28cecafe7bec1347509510797f5820870dca606397b85d2e4ee1e46bdb9b784a092a1ec25cb8146cf4046456ff861c825840c085ebef69c078f6fcfd53a2eb2e209b6bd1a517390c8971f079fe55a4b30c82641385a618acf269bceb2d3c83a4ad6addc8901cc3bb359da7875c672ed5a6a55850758500c16a229759d672f0c5aea206fe924238915de34dfdf54413d438a27c4bdb453a080d1fe6ce0f3427452d20aeb1d1907d034899d19021e951a1badeef442de3f4f1bd4e9a4ce5924870f068a4021911c65820c8fc1a8e30b35038644284be081128c4a7ad8b3c39edbfeea871084b9b3566cb845820b7e792177f506de2a34d1c4099f7a1687ff7af54caa093d85c5755e709f757fd0d190241584095a171db3d0e3808bca5e84970ead6b0a736e1d5a2b5fc8c169c8fab7bc1a5d3d60b0b582fbbc8c23d43b3301c4b3eede3ac5438bddfebe1cc8e5a8d71a94802820a005901c05ae6633913fc08585a1ddf905f10b2cc1134d914f9f656b58e72cad542e53a90ce0cc9c6f0e819f7243431a5416cbc1a3fa67d8ab8c547a09f78c86c20073208dc3b328c9d70a24a912aa4e170b9d6fbe8e55c03b52dc296435c86a358bc3f20e89f4c92748dff2ed24a71b8377b4683851a52cfd023dccaa92239d9e989fe8d1d360529c15417937f60530a085ee82dd4ed5f1bc46d0bcf2ab68d4729063a7a5c5074cdb289655f23954f7eebfd418e3a133bb53cfa0bd5ff544fc9d0599640b46619d3bfc5d9782c98ee86fcaa1efe8503980fd9219db77c3003ed2cee13d85f510f9a3381d442f5314a91c52ccf01cc796b9fb7ea14d046a00c3f96e6ee2ec28896f72808952cda9aec2feb690ecb59c1a729816f602a58b06fbab79977a9e96ff7eed2dd262eb86cee8f35d4bad55be2919413ff5cd8fbab3acc25f608630fa7796debcdae0239aafb45e949053af2523bb112b5f6be5fc4ece0ac55f59783466565dad12d42b76fb3ad45112c25d0f4c0880b88ad0ff87f207538c5c7cb96690633a72de47fd36980846cfba4865e324b7ccf1ca80382a4eedc72caf1a0d828049fbd7b3906877b89980bd2f0ca5ffc229e667d56fd11c1dd6e3c0ba7ed82ab0082825820276df9bb9d245ea87e6def1a995ad919edacc907c6cbf028e0e552b1c53c10df0182582062e4dfcb06b8401ea1c405d6290c6aede934c7a6cd31ae000c2a5dd34961af5b000182a300581d70bdc22da682cd9aceed5fd48914789fc98c94abc79fed8b40cb8c431401821a001e8480a1581cc13ddf298a5d25aff2933695987912b4f1748bdf0df8e4b5d85f2360a14e50524550524f445f4f5241434c4501028201d81856d8799fd8799f1a0bf85ea8ff1b000001938742fe98ff82581d60c0359ebb7d0688d79064bd118c99c8b87b5853e3af59245bb97e84d21b000000011587887e021a0006a164031a049d9933081a049d922c0b5820e33c25b2f65204adbf1a8f29ba4c7157c35f9479346e2d6717e23d6786e8b6340d81825820276df9bb9d245ea87e6def1a995ad919edacc907c6cbf028e0e552b1c53c10df010e81581cc0359ebb7d0688d79064bd118c99c8b87b5853e3af59245bb97e84d20f001082581d60c0359ebb7d0688d79064bd118c99c8b87b5853e3af59245bb97e84d21b000000011541dea2111a004c4b40a600818258206695b9cac9230af5c8ee50747b1ca3c78a854d181c7e5c6c371de01b80274d31000181a200583900eb21979c03eed7207020b2a0b47565b5aafb1a2c3849b59a1fa8e6c5e075be10ec5c575caffb68b08c31470666d4fe1aeea07c16d6473903011b000000024f93e7f8021a000304fd07582091e3a1050ba7f37e9d94938ec94a9d187f24b363374c109e3fcc44fedb5de8b70e81581ce075be10ec5c575caffb68b08c31470666d4fe1aeea07c16d64739030f0082a30081825820ef603099b2579d5ca273dce1f1257c11f054664ba972fd61c008b58a1b2325c1584049e2d6c6a948a7d1398f200213a65cd15ac2dd491e903892aaca6ad487717f3cad6c66e201dd8fd74f69898f77aa3de953e83df61f2822c01a30eb992f58f0060681590bd7590bd401000033232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323233027222232325335333006533357346074607e0022646605a60586ae84004dd69aba135744002607c00206e64a666ae68c0ecc1000044c8c8c848cc00400c008c0b8d5d09aba2002375a6ae84004c0fc0040e0dd50022999ab9a303a303f002132321233001003002357426ae88c0fc00cd5d0981f00101b8890008a99ab9c490103505435001637540086ea8004cc09c8888c8d4014888d40188c88c94cd54cd4ccd54c0d40e0c0a80a4c0ac01ccc0b08004d40048888888888880100e44cd5ce24812d546865207472616e73616374696f6e206973206e6f74207369676e6564206279206f7261636c65206f776e657200030132533553355335333553036039302b02a253335302135001202103e215333573466ebcc118cd5d0182319aba0375000a6ec4080cd5d01ba835500b03937620400022a66a666036446a0044466603e446a00444a666ae68c12c004400c4cc11848ccc00401c00c00800c00c0040c0cd54c0e80ec8d400488cc0e0008cd54c0f40f88d400488cc0ec008ccd4004dc0a4000e048cdc0800a400000266aa607407646a0024466070004666a002466aa607c07e46a0024466078004604600200244666038066004002466aa607c07e46a0024466078004604000200266602e05c666050400204e6a004404e0060784426a004444a66a0082a666ae68cdd78018238a999ab9a3375e00408e2a666ae68cdc4000a400006e2666ae68cdc4800a410125e80206a07006e06e44072064407e6044014074266ae712401024c310003103a1335738921156f757470757420646f6573206e6f74206d6174636800031153355333573466e2400d20001335738921165072696365206d75737420626520706f7369746976650003103a15335533535353301275a6a00407e06e44a666a00442a666ae68cdc419b8000100935500c03a0331333573466e24004d540300e80c40d00c80c84d4cc049d69a80101f911a801112999a99980980a980f19b8100900b0021533500113330120150030081333012015003008034133301201500300803003a13357389212345787069726174696f6e2074696d65206973206e6f742070726f7065726c792073657400031030030333025200102435302635533530270092100116036202402f302d350080393302f3016337000020060542a666a602e6aa66a60320022602602a442a66a0022004442602e032402e02842a66a6666666ae900048c94ccd5cd181d98200008991999aab9f001202d23233335573e002405e46666aae7cd5d1001119299a9999999aba400123253335734608660900022646666aae7c00480d48cccd55cf9aba20022533530203574200642605e00206a406c07a078608e0020646ea800880c880c880c880c80e4854cd4c070d5d08029098159981a8010008188181aba1005203003703635744004068607e0020546ea800880a880a880a880a80c48400405480548c94ccd5cd181b181d800899191919091998008028018011bad357426ae88008dd69aba10013574460760046ae84c0e80040ccdd50009111a801111a801912999a9998040038020010a99a8018800819814819911192999a80190a999a80190a999a80290980200b0980180a8a999a80210980200b0980180a80c0060a999a80210980180a8980100a0a999a80190980180a8980100a00b8a999a801100700b0068a999a80110a999a80210980180a8980100a0a999a80190980180a8980100a00b8058a999a80190980100a098008098a999a80110980100a0980080980b12999a80110a999a80210a999a802109998040038010008b0b0b0060a999a80190a999a801909998038030010008b0b0b00580691a80091111111003891999999980091199ab9a3370e00400204004644a666ae68cdc38010008098a999ab9a3371200400201401044666ae68cdc400100081001191199ab9a3371200400204004644666ae68cdc480100081181011199ab9a3371000400204604044a666ae68cdc480100088008801112999ab9a33712004002200420024464a666ae68c0c8c0dc0044c8c8cc0994ccd5cd181a181c801099813198038029aba130380023006357426ae88c0e00080c54ccd5cd181a181c800899813198038029aba130380013006357426ae88c0e00040c4dd51aba135744606e0046ea8d5d0981b0008179baa0012325333573460620020522a666ae68c0c000407c0b4c0d0dd50009119192999ab9a303300100815333573460640022601460086ae84c0d400854ccd5cd1818800803017181a8009baa00122233355302302702a335530260272350012233024002300b001333553023027223500222533533355302802b301d01c235001223300a002005006100313302e00400301c001335530260272350012233024002330382253350011300a003221350022253353300c002008112223300200a0041300600300400211009212223001004112220012230302253350011003221330060023004001212223003004233333335748002403040304030460206eb4008806007c94cd5ce2481286578706563746564206f6e6c7920612073696e676c6520636f6e74696e75696e67206f7574707574001615335738920117496e76616c696420646174756d20696e206f757470757400164988880088c8c94ccd5cd1813000899091118010021aba13028002153335734604a002264244460020086ae84c0a000854ccd5cd181200080201098140009baa00111003253353007001213335530150192235300535300935003019222200422353007350042222004225333573466ebc01000854ccd5cd19baf0030011330220060051005100500e3300d00735300f3500201b22222222222200a15335738921024c660016232533357346040604a0022646424660020060046ae84d5d118128011aba1302400101d3754002444006660024002eb4888cc09088cccd55cf80090071191980e9980a180398138009803181300098021aba2003357420040306eac0048c94ccd5cd180e181080089919191919190919998008038028018011aba1357440046ae84004d5d10011aba10013574460420046ae84c080004064dd5000919191999aa999ab9a3370e90030008990911118020029aba13020002153335734603c00226424444600400a6ae84c08000854ccd5cd180e8008990911118008029aba13020002153335734603800226424444600600a6ae84c0800080648034803480348ccd54c048054cc03c894cd40088400c400403494ccd5cd19baf002350010181300600100d3300923253335734603e60480022646424660020060046ae84d5d118120011aba1302300101c37540026a60166a00802e44444444444401860400026ea8d40040408488c00800c48cc004894cd400804c40040208cc02488ccd400c04c008004d400403488ccd5cd19baf002001004007223301c2233335573e002400c466028600a6ae84008c00cd5d10010081bac001100d23253335734602860320022646464646464646464646464646464646464646464642466666666666600202e02a02602201e01a01601200e00a0060046ae84d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d1180c8011aba1301800101137540022002200c464a666ae68c044c0580044dd69aba1301500100e37540024424660020060044446006600400260244422444a66a00220044426600a004666aa600e01600a00800260224422444a66a00226a00600c442666a00a0186008004666aa600e01400a00800244002601e442244a66a00200c44266014600800466aa600c00e00800224002220024400444244660020080062a66ae712411f496e76616c696420646174756d20746f20636865636b4f776e4f757470757400161533573892010350543100162222222222220054c1014000370e90001b8748008dc3a40086e9520005573caae748c8c00400488cc00cc00800800530012cd8799f581cc0359ebb7d0688d79064bd118c99c8b87b5853e3af59245bb97e84d21a000dbba01a01499700ff00010581840001d8799f1b0000019385f96798d8799f1a0bf85ea8ffff821a001862581a18087eb7a100828258208469288efa6f9cb49040b43dcff93f40969d72433f751afde50235012c01602058404ac843657462bd1b0f2db7e1abfa2fa3ccd3105ad2278649e155ceb3cf4e44b3cc2532815570cee26a55910a04db4de50cd3c07784ecfacf4c74706f54cd470382582076af5530fa318a370820270031d1838545a4ceed8696510627563d1114d4182b5840c9fe85cdcef2b32d76958d564be1b7bc0124a99594cc9e69e1a4d0cbe8f96eed4ca94fe6f2471382d19d74f610a6a5e01e56d8f6dc2a5519a090ec2e00dc3e05a101a11901fda50050ca7a1457ef9f4c7f9c747f8c4a4cfa6c01505be7b97fa11335b727bbf095a3f0fb7c0258206695b9cac9230af5c8ee50747b1ca3c78a854d181c7e5c6c371de01b80274d310b8758401b3e020864c84e53c9f7a9c54b8d09c6047bc2049aed7438c5575ed4ee265182dd808a52ae8b12083cb540fa9ccc7e0ec3a7b52ad5f134682286f658ff0083f558400dc73df538d858d8d8b89e5247f2000f1f47c43b0c68204480001fc71a179f0685400804400c2484e3013b03195a0a79c94206484bc93b10cbcb474999a5e5a55840b17f9619347e158e3a2a44e3e33eb72d648ae645a0e63d83fde739ee0d7ff6baeaf5767357770a697c2a92095bfe292e427bbc2fee56211ec78389dfa56d13c758400363abd573e840dead26d80c600380b5bc64a3c285550096634883e3a7265b4f18ca836d1d23b991a02a45ac365c9665acb787484da6ee21a10a1212ee5e5e11584012912b55d77a3e82444744ca4581c84877c958f9583f7910e4251d15161126e91b1d11e72525271b11e5870e0f0a0f94f18e080908f7f4f6918af68de8fc1bdd5840ec35fc967e64936c930f279eb8d043d31112e6a71aaaa76fc3455e9d30b90ea671971e5c9ecd4be5b4d87ab3e11f7de3b8984ea353e9a2d8d65c6ad6f9102c46581876789c8667c739c00da3176c46a1b030c4281c4e62afcf3a186358401824797b7e12054dabb6fef573ceba9c3bbed87b522a4141c2357d05d63ffabee59add33aac71f4573e43520a1c000d0c4e7fa2adf7f8e92718320527d23e60580 \ No newline at end of file +820785828a1a002f3e281a04dab3655820705aa5db38c03d487607e3e4b1d58deec5315f0eccc54cebe18e92f2118d3bc958202f5ad4772c00767b6d75c8c1fae31e3479d91921abf41b1989346d2896b61de258201003b81af09c4acb552e0fbb33ffe12415360f2842c0e020b11b09cb82f7c5e48258401fbc93cd126021089bd034cd59b89e0ce641561cf4679f6fe9c4227bd5562b1f849083ccc9ce346290886c35ffb4b0f4dfd2f980dcaece330f26c4ad437ec9e358505d350e76a153cbe02feedf98a9503d7846e0875c2dd3dee2365262dff0fd3af87862bda9425e8a1887ef49af258ef97e9648bc352972d9d80bb2789ecf71efa634a2a2e441f00edc0bed52239f011f0e190b7a5820f78a36c40e5e053d51ce7b22193be5ed01612d7b9f748db6e951238991a47fe9845820bf1574f0126d9a0388fed2014a3440844410c9ce035e9c983da5112841625197071902485840c642b28a06fc6d4828e0b43bc9761962862d7f12d6bb18e19dcd8d574256158d3c4a586741086032d3e648310919abfe30b3a8c8544505ad20a257109e95b004820a025901c088e2cbe635c45d556f2dfe367be45e51456847e3e6e55818c6a536a88442fc251c8c5504ea9e35a4342d5140eee9cd36a18db2cf25db0fe0f329a8f0fa14f50776537aa0bbeb9311283c37b83f751a8c1be816d16f4cb473d86dde2df1098e911e34d42bacb85bb0c289ef370fc66968b893a0cc50183e19f241e62630df20e93d1bf467976f0458f761bd7778e559ef8af3d8e2df50c346739611b06e7c1d611d2620a2ec4f5dc947429e27dc584807b381b89c5133f4a04352877168f1bad1ac0ef009961da71934afc60e42a6dde546886060af932d71788d89446dc1f86242b195576249aa5cfe34208cbf7be27a66f05d825d64b245459e0432a8b701e7b4fb217c83c2f2ecd355d054a3009dfd78ca9f53bde6333b8573a04e1e644d2762780179213fc8e034ab8e9f0ca0629bcf5c1bf84e18924b06c6cc2d64bc619a267e40294e41a51e89d397163979de3079cf00a33b029d18c840c3345b3e35d995ddc444d98eb43d8671aae99e4b7bfe4c74c79ff8043cec445a0967b47cbc0b764114587d3861f8b749c442e6114391b94c443aa0c588b11eeb8e4e6399772e8a8c57864a2f2630a9d22ce0cf37a0cdf7065f0c78a3ad50ae2eb5b26579ee6586a6008182582053859856066d6ed5bb7f7b27e1b1c37fb92db8c175bb21c1677af3913f70e09000018182583900b5e9fc83cfb5ee33666ff4e89d073d190e016a33dbd362762b3842f18ca81c76574aaa32a3482838f367eb081079ec4c2024e41c557c44391a376823d2021a0002b721031a04dacec5048183028200581c8ca81c76574aaa32a3482838f367eb081079ec4c2024e41c557c4439581c5166f69443ff7d35a65f75c035ee7ebf7f9dbe17c49b4d8a82ba49b5075820880443667460ae3b3016366d5bf66aca62c8149d67a53e94dde37120adffa624a40082825820915e531046d61facae6da14e46ccf5fa7ad8e0895d057875d0d25ad5d0446bec01825820a6df6f8ee870410ca61758bb93115cda50af891419526c13e27db945e677325e000182825839001d7fd6628eda384831fa549c5c8689249cf4c4b81ff5dad9732de97a24ed5409041d9e5280a5bdc64565b2ba68a86f1dc0d5c87e17fb74871a004c4b40825839001d7fd6628eda384831fa549c5c8689249cf4c4b81ff5dad9732de97a24ed5409041d9e5280a5bdc64565b2ba68a86f1dc0d5c87e17fb74871a005cefc5021a000297ad031a04dacec5a40081825820bbc853b8b9d8692ad441c02fdb087705ed10de64aed18fac8e465905590d609b03018482583900bb7d0bd9f9c6662cafe5dd89623b14d3793c2d8c20388ea19e3ec3eaf7a045d275d2b8352958b75d0d5f4809841f56d26ee996711f55aac21a0011244882583900cf1b5fe70c1ab3b1da0bcbb18267502ec5fdfb0522eb0de359151ce8fb85942a1b302874c26ed97f87f2acd0de5d225b603e3eecca3a2fb51a000f424082583900fe7f65bbe21f049a6f20ebfb69c6e116bfecc301dc13e0578f9c9fbf0f91054708d5aaf9ec21eddd6b7b471229e3ff9493a437efff39adb41a0388997b82583900fe7f65bbe21f049a6f20ebfb69c6e116bfecc301dc13e0578f9c9fbf0f91054708d5aaf9ec21eddd6b7b471229e3ff9493a437efff39adb41a02b9386b021a0002a7d5031a04dacf0da4008182582065fe4bc5e0b49cbc7a52419b08d2b86847d025382677955f2a6eb98858359995010182825839005277c7dbe211ca109c54cc10bf0609f365bbc55afbecdbaceba5473227ff616afc58c98145c187873fe0a846e899a7907c57116aa4bd2b1c1a0011244882583900fe01eebeb08d24176be4e015a4e002efb1303a8c94cd34afb8590a0697c6e98e5f62ef24fdda72f4fc0bdb8255f0dcc989c38cf2c2a885431a002680bb021a0002917d031a04dacf0da6008182582022469cb214ad2c95265630f5c26b96166ea618722b38401d55ecf68a1fd893ec000181a200583900eb21979c03eed7207020b2a0b47565b5aafb1a2c3849b59a1fa8e6c5e075be10ec5c575caffb68b08c31470666d4fe1aeea07c16d6473903011b000000024f84d1f3021a0003065d075820a260f400800becddcf974f7f7c5967dde1bae11ebb7b4ed20d6ac4293f080e250e81581ce075be10ec5c575caffb68b08c31470666d4fe1aeea07c16d64739030f00a400d9010282825820249ce2c11f4bb1ecc6ba8be08ede53012df58158c13fc4179fd74cc700e9b24600825820249ce2c11f4bb1ecc6ba8be08ede53012df58158c13fc4179fd74cc700e9b24601018282583900df8e2dfbd43236b9eb6bebe4306ddd3e5a182397696730cee8eb37f9c3892366f174a76af9252f78368f5747d3055ab3568ea3b6bf40b01e1a2f167180825839003a70cf87851ad04f2509989af7b4bc667a80c141dd488d9d88e0056fc3892366f174a76af9252f78368f5747d3055ab3568ea3b6bf40b01e1a33c9392f021a0002aa11031a04f3dbf686a100828258205ed5c54edc48cc1220beadd59334717b12dd55c96191884a97315b6d7fae56985840f6c9839ec9f5fb92b75cf3e6d26eb264c5dc83af215474aeb48444bea4e10391c371bc584ac1ef417bf558abccff0aed7fd42674cbb4f8141d2148f7d210b30b8258201740650f6895a75188722187030d9f99a7507752d61bf038f8f9a315bc06da00584094a49256bc707174bd31b8ce9a8a2cdad380b498edef9c9273cd1f0de28e4234f1a7c0af273fa86109246dfdad928e105a17319300712c9c9d013a64fd022103a10081825820230ff796a7afcb42115b016f5cf717d500393166a755a87a99912b9416ac572d58404af4e7811178e9cc4addeb9f1a24c51cf812017d37db1546eea75d008fbe958da9fc00d929b9da83141480af0c16e7196ddfe79b311cbb111fb9f06ebc2b980ca100818258208d374ac9e2c0c9643e96f7c0be1782a7fefb6ff179bb395e08d657901da005f4584068cc110682280259ba22be805ddefb7018e353d29fbf6a5a973dbf19379091ef56a63ba70e96dc71bd13da6c59e09d4adf551a22f05cc87f638352665243a506a10081825820c481da5549c98118cdbe2b12f0eabe10a71b6b9271e67a114ac4d3c51f4b5bd258403f0a123038d31e6d1ce9de9161c9d8eb4002ac6fb1fbd64213dcb4e6174a35a69de78ef74cca881005e3e92d565d56b5070a7ed4e5e8102666bf674714ace60ca100828258208469288efa6f9cb49040b43dcff93f40969d72433f751afde50235012c01602058404c22ff3b90bd7c22e2a2a24569df31993256230b7905bab48f890afaf06999673428786a752e4de571aec31806a9f50e4605a588b742af191e77c84049f7080b82582076af5530fa318a370820270031d1838545a4ceed8696510627563d1114d4182b584088f4166aeb961187b8f3696eed1e7bcccef2c557d1939fbc74109f5e9592593a0bdcd0f33e66a4f3fc937b5cacf3b14b7c22a11cb15b74822020e129a6db2302a100d9010282825820d5ea64310f1dc500483a82b63efb5c4b35c7f6cf5498ac38bb3e40fd0008309e584091383164c330fed4d3d0b0993f8aca67ea5a67631e9f70bd122632c98bb5862159a0e453bc5bc2f8129387bde2653e92e477da58067f69e855aa34707b7cbe09825820e50a0809d8c38b7ce7f022f8f73980feb2134b70e4ec506a5be705e7c1fdc93c58404de6956cc8c7de7ce40e83b3e5600d83921e635b25b86b67e1c57a520040fa31b82d6c82969c2540a472137952f07b2ad89210a39ed05d768df7bc411c2aa604a200a1191acea165706f6f6c7381a26269647838353136366636393434336666376433356136356637356330333565653765626637663964626531376334396234643861383262613439623566776569676874186404a11901fda50050ca7a1457ef9f4c7f9c747f8c4a4cfa6c015065842cc3405b582bf9c7bfc7ec89249302582022469cb214ad2c95265630f5c26b96166ea618722b38401d55ecf68a1fd893ec0b8758401b3e02008cd4612d34771aaccb4425538bb335f5da67e133a2db72a7cf78cafff6db6fbf174b032aa0906b414b20f0d402c96e46fca52e65e3f65ba78b0c75c25840fd0f30b8bfe578a41d1f0f170f8f80eab484171012e18bfb45026d480a8889f0ed0888e87114488018c8809cf0d7808b99129103102a4059192519c4d99292125840446492cb29797be73e667ce8abf0b570c2b57fdc17f4852fd1bf176ef99ecdf5e739f123d1ea75ed87dbb32b8325d8f9542a1f79f0a7ac14f1febe77550bbdb158409329bf2bfa16b0137347cddb4888c07917da0dd00e80b6c694939600ad05681586222c6962bcf1c0d0b0b5468dfc7908a0d4252598e5da24f8798b5364e8151e5840a12c2dede5eb1b2d1db34ef5a0e623302e3a463116c4c478c9242825042a81505fb9d8c8e8489980b8e8445f594585e8d840242a342a44de2f3a3c38cac7cf5f5840362e20fad2dfc8696c4bed87a72741a5df980d6e7c510e05a9eb9b01ddf689c4a1cf2cf61fec3fbdb1b618111c112aec340a51123683d7c975a3d887834a9a4b582021b66a6f3722162e149b49e8c833bc0d8b2fda8d43808b21c3c1c721f3fd5407186358402f296167623f7847021db262576f075a81c4c05d5fe72619ca815dfadb691adc74cda623eca7ee0900c81ff4c04b027d23f04b326f6e0da030e8da104be5b00780 \ No newline at end of file diff --git a/rust/rbac-registration/src/utils/test.rs b/rust/rbac-registration/src/utils/test.rs index 436bda3c6e..24be8cb285 100644 --- a/rust/rbac-registration/src/utils/test.rs +++ b/rust/rbac-registration/src/utils/test.rs @@ -1,34 +1,136 @@ //! Utilities for testing. -use cardano_blockchain_types::{MultiEraBlock, Network, Point}; +// cspell: words stake_test1urs8t0ssa3w9wh90ld5tprp3gurxd487rth2qlqk6ernjqcef4ugr -/// Returns the decoded `conway_1.block` block that contains one transaction (index = 3) -/// with the `Cip509` data. -pub fn block_1() -> MultiEraBlock { +use cardano_blockchain_types::{MultiEraBlock, Network, Point, Slot, TxnIndex}; + +/// Test data expected from block. +#[allow(dead_code)] +pub struct BlockTestData { + /// Block data. + pub block: MultiEraBlock, + /// Slot number. + pub slot: Slot, + /// Role. + pub role: u8, + /// Transaction index. + pub txn_index: TxnIndex, + /// Transaction hash. + pub tx_hash: String, + /// Previous hash. + pub prv_hash: Option, + /// Purpose. + pub purpose: String, + /// Stake address. + pub stake_addr: Option, +} + +/// Returns the decoded `conway_1.block` block that contains 6 transaction +/// Slot number: `81_440_954`, Block number: `3_096_080` +/// Tx hash: 0x22469cb214ad2c95265630f5c26b96166ea618722b38401d55ecf68a1fd893ec +/// +/// CIP509 details (valid data): +/// Role: 0 +/// Tx index: 2 +/// prv hash: None +/// purpose: ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c +/// stake addr: `stake_test1urs8t0ssa3w9wh90ld5tprp3gurxd487rth2qlqk6ernjqcef4ugr` +pub fn block_1() -> BlockTestData { let data = hex::decode(include_str!("../test_data/cardano/conway_1.block")).unwrap(); - block(data) + BlockTestData { + block: block(data), + slot: 81_440_954.into(), + role: 0, + txn_index: 2.into(), + tx_hash: "22469cb214ad2c95265630f5c26b96166ea618722b38401d55ecf68a1fd893ec".to_string(), + prv_hash: None, + purpose: "ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c".to_string(), + stake_addr: Some( + "stake_test1urs8t0ssa3w9wh90ld5tprp3gurxd487rth2qlqk6ernjqcef4ugr".to_string(), + ), + } } -/// Returns the decoded `conway_2.block` block that contains one transaction (index = 0). +/// Returns the decoded `conway_2.block` block that contains one transaction. /// This registration contains an invalid public key that isn't present in the transaction /// witness set. -pub fn block_2() -> MultiEraBlock { +/// Slot number: `77_171_632`, Block number: `2_935_642` +/// tx hash: 0x337d35026efaa48b5ee092d38419e102add1b535364799eb8adec8ac6d573b79 +/// +/// CIP509 details (invalid data): +/// Role: 0 +/// Tx index: 0 +/// prv hash: 0x4d3f576f26db29139981a69443c2325daa812cc353a31b5a4db794a5bcbb06c2 +/// purpose: ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c +pub fn block_2() -> BlockTestData { let data = hex::decode(include_str!("../test_data/cardano/conway_2.block")).unwrap(); - block(data) + BlockTestData { + block: block(data), + slot: 77_171_632.into(), + role: 0, + txn_index: 0.into(), + tx_hash: "337d35026efaa48b5ee092d38419e102add1b535364799eb8adec8ac6d573b79".to_string(), + prv_hash: Some( + "4d3f576f26db29139981a69443c2325daa812cc353a31b5a4db794a5bcbb06c2".to_string(), + ), + purpose: "ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c".to_string(), + stake_addr: None, + } } -/// Returns the decoded `conway_3.block` block that contains one transaction (index = 0) -/// with the `Cip509` data. -pub fn block_3() -> MultiEraBlock { +/// Returns the decoded `conway_3.block` block that contains one transaction +/// The registration contains invalid payment key reference. +/// Slot number: `77_170_639`, Block number: `2_935_613` +/// Tx hash: 0x0fda4c9f86e763fecd33f57d8f93540b1598c0a0e539dd996c48052ce94bab80 +/// +/// CIP509 details (invalid data): +/// Role: 0 +/// Tx index: 0 +/// prv hash: 0x4d3f576f26db29139981a69443c2325daa812cc353a31b5a4db794a5bcbb06c2 +/// purpose: ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c +/// stake addr: `stake_test1urs8t0ssa3w9wh90ld5tprp3gurxd487rth2qlqk6ernjqcef4ugr` +pub fn block_3() -> BlockTestData { let data = hex::decode(include_str!("../test_data/cardano/conway_3.block")).unwrap(); - block(data) + BlockTestData { + block: block(data), + slot: 77_170_639.into(), + role: 0, + txn_index: 0.into(), + tx_hash: "0fda4c9f86e763fecd33f57d8f93540b1598c0a0e539dd996c48052ce94bab80".to_string(), + prv_hash: Some( + "4d3f576f26db29139981a69443c2325daa812cc353a31b5a4db794a5bcbb06c2".to_string(), + ), + purpose: "ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c".to_string(), + stake_addr: Some( + "stake_test1urs8t0ssa3w9wh90ld5tprp3gurxd487rth2qlqk6ernjqcef4ugr".to_string(), + ), + } } -/// Returns the decoded `conway_4.block` block that contains one transaction (index = 1) -/// with the `Cip509` data. -pub fn block_4() -> MultiEraBlock { +/// Returns the decoded `conway_4.block` block that contains 6 transactions. +/// Slot number: `81_441_637`, Block number: `3_096_104` +/// Tx hash: 0x730cc97496b2aec16af58d27284deae2b3347e4c4c5e9ac97458e80131ccd575 +/// +/// CIP509 details (valid data): +/// Role: 4 +/// Tx index: 4 +/// prv hash: Link to `block_1` +/// purpose: ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c +/// stake addr: `stake_test1urs8t0ssa3w9wh90ld5tprp3gurxd487rth2qlqk6ernjqcef4ugr` +pub fn block_4() -> BlockTestData { let data = hex::decode(include_str!("../test_data/cardano/conway_4.block")).unwrap(); - block(data) + BlockTestData { + block: block(data), + slot: 81_441_637.into(), + role: 4, + txn_index: 4.into(), + tx_hash: "730cc97496b2aec16af58d27284deae2b3347e4c4c5e9ac97458e80131ccd575".to_string(), + prv_hash: Some(block_1().tx_hash), + purpose: "ca7a1457-ef9f-4c7f-9c74-7f8c4a4cfa6c".to_string(), + stake_addr: Some( + "stake_test1urs8t0ssa3w9wh90ld5tprp3gurxd487rth2qlqk6ernjqcef4ugr".to_string(), + ), + } } /// Converts the given raw data to a block.