What changed, and why it matters
This commit simply comments out a single automated test for Monero transaction signing. It does not change any production code, so it cannot directly introduce or fix a security vulnerability in the firmware that users run. The test is disabled, which means the code it exercises is no longer automatically verified, but the commit itself does not alter how Monero transactions are signed.
Treat this as a code-quality/maintenance change. If the test was disabled because it fails, investigate whether the failure indicates a regression in Monero signing and re-enable or replace the test. Avoid committing hard-coded private keys even in tests; use deterministic test fixtures or mock keys.
Security signals we found
Hard-coded private key material present in test code (now commented out)
Monero signing code no longer covered by this specific unit test
Evidence from the diff
The diff comments out the test_sign_transaction unit test in rust/apps/monero/src/transfer.rs. The test used hard-coded private keys and an unsigned Monero transaction CBOR blob to exercise sign_tx. No runtime logic, cryptographic code, or transaction parsing paths were modified. The change is purely a test-suite adjustment.
Changed components
rust/apps/monero/src/transfer.rs (test module only)Inspect captured patch +21 / −21
diff --git a/rust/apps/monero/src/transfer.rs b/rust/apps/monero/src/transfer.rs
index ae1127c..04e07b5 100644
--- a/rust/apps/monero/src/transfer.rs
+++ b/rust/apps/monero/src/transfer.rs
@@ -847,25 +847,25 @@ mod tests {
}
}
- #[test]
- fn test_sign_transaction() {
- let sec_s_key = PrivateKey::from_bytes(
- &hex::decode("5385a6c16c84e4c6450ec4df4aad857de294e46abf56a09f5438a07f5e167202")
- .unwrap(),
- );
- let sec_v_key = PrivateKey::from_bytes(
- &hex::decode("9128db9621015042d5eb96078b7b86aec79e6fb63b75affbd33138ba25f10d02")
- .unwrap(),
- );
- let keypair = crate::key::KeyPair::new(sec_v_key.clone(), sec_s_key.clone());
-
- let unsigned_tx_cbor = hex::decode("4d6f6e65726f20756e7369676e65642074782073657405543582a66d85aaa08a665445b51cad7c13ce24ded1fdc6d21226d8d0b4615331cb80434adbe0f4e516aad44a0a13015396a1945601a9e3eab1c4315ae4695ea73e28f3428cf66a1cd344191f1d85c97a70620ffc77ab9e4478cca0d7e3c9492aacbc1625b462ff3d396e4478d4608173810c714d7b2bca717d55e41b183702432198ea217c9fb2a962ab0e5189a0302f7774377afa890b7851b268a16a263f0daa0715ebad83959cd067a472a7174471874be870f38c8af5af20c680eec99fecc1f23397bcb9ff4e63f5fa28c7f18a277b797a1173ab0e1eda3ccef5376204c364c50731c63d63f312bdc0f2a50e6b726c42de07d84fa19f2bfcc0133a4ed24239e191e3562c6612211b4d78994c23711331975dd16bcde6991862b7a354212d1547f4f7edabaa57feb3d87b01bd8687ea65446f73119f85fcdab0d3fff3a4c60bcb87442f3fcc016f6dd46a6babc56c22b5ac6eb0eaefb17fe7d750b6b2a1e1990ce5f07b3292a60db37cafb851886f1653b41dbfcfbbfa55a1916ad23598739699b8265b02b4ae68a86d4d17fa77428b4017506ee640aed29d36532fdeec7f7b329a8edebb54bf2245b6c8d4d0c1f0aca00d4c2ed71ff0a5c57a8364382d03afbe4a48e3136ab816c9705095fee4892ace2a6b4eb920079527b2394baf3fa5d1d8f7ff08618a1934e7e34f38bf3f69d15139492c664e317f8d916d0b0cdf3fc8dbaa6ce73d9a08e27e641b5e2e3c543a551dc7ceca3bd7f54c228c63672c0d4fdf1004135e1f10e3243ae701a0f134efcd874e0d32d8f52cb4cfae1972e9ebe358ff69ff2427cdb43220c2b7992f6d4b1ba882c3d91ca91e0655c3e6c36b3765a3f41e75e5747203fae2077a33df7f2015c39a5ad069301d52fbf95d2fbc1e1c45aedc0253992c8211494212f6ddc942e7b0256e36aed8da044b7096f7e768e042216898ff6550b5245086fb20cacc0af9d53fd1f0cafba025d26c69d898e06fecd423c7961727c3cf109d4c429f049f23b791c39b6868b65b1dc699aa97d21fd54d4d1cb891d880685528e57796943b89cad902107824a0de386cc4c94e5fc1d7d45aca2db5ad2526ec72170554c9edc0ec73693712ff21712965539f32925bc4345c0f62867f4fdd21f98451c223a67c75bf7cf56fbdef82f762f48052c2fd8f922616e779884c2f533f36063c0a3bf350f53c3990eb815335cc6925dda858123648e2b83ee040e016a618158558f106412b7d99094431508ac7d2eb32b3e495faccaec0aade80a6e6b5958a79faadbe53f21540721362a6d99bc38f3e5d8e10ce049770d763d1669f764c297b44f91232ef2d286ea450a8c07f2caee5ebfe6c5b65c498d54343fe0980d8da872a7ec8eb15ec3ebdfe60482d85a1b52dc5136495c7d9e88ae2652bc6c8c8e765be605667c102804fb2bb118ca9d800b2c5649aacdc9cd591cbad79370f200dfce1d204e2031711f00d7503d613bfd3674b144911d7c9d7a07f1ba7d841587dd41f76dadd5967b329bca7d347570a87f483a770d5e74587d17b36a0313c44e4322f1cff801524d645df1d504ab8e7ac2f5d9fd41fe26d7188c1089f596668624b2a1e755b63e4ad456d466eddcf5f8837a868c26ccf9f3fd3088d544b8ebf113ee0de0254683808d269c8bbefe9b2e29f8d3f839c59216bcbb40ba4b79350e4d9e7d283953da6c89b7d226213fc53a73fd138c10a2e17b5dec4b864d17bb0dd3a7184ea8afbe3c26d5f2abd7bdf71fcfb12b35ef81b5d5d92f4391c26ac927f75475731fda3e0cd72196c0b97b445cf6a6ea5e8dd4cb44463445537e989e4b8afe47d98ffdd7efdec2f57725f3a5dbabb8e2f464bfe3f6931600681eecc28a120adcca788ba91208943c44cd98c8d70e7d0c3100530a01bf5a8eea88742857be2aa69aea0e08d3076efd8c71635c4e42d533f9ced9fc2d491589c48992a7d51f0e39b664aee8c22a64538b0b4db2b57f1595a3f372779c1c773b75f7e9ede737e44998270e0b2bcc267d5e728ef9100f52f89e9a4287d4a214da03f9e9e667b4facb4e3a85c6b18eb5d039b40f68d5be76e3a28d1fda09e32ed8740589e0e371179af44ab257e72fec909440245fe3ff3483ba6d70d1fe4d51be4a440f966a720fc999eddee8a1eae684081b48b44a53d9f9db16ae660540afeb2cead4d9a5049e3ff2fc9f60dac662d9f6102cb0d266150c9d4fe760f5851ebb5e82a654ef21e9a8b1684a98fe2d95a238c6a6bac53498e1d196939c92fe06cf40052d541f0ee33d00e6d07d55331eed1c9de08c66fb255c58bd50fef1277bcf4f58d1a2b43d3858da56af0c8a6e18fcab82aad00250c7e2f656a2597efb9170386f553aac412d2cd00c9ce588f10dadd2d570b82757b1a3aaaba08e5d17305a6e21fabacd8f32be120631dd6b247736e221028e82faa443e796d4129ea08e50b1d238b90c05e389cd5a0f02f3cd676ff5f3ee93c27f5b6ca65e403081f0c79192f14df529b80e13857b521b3b63a1dafd9de9d1403fcd9a0521f4af48589298ec68c9772c010a9e603a91c950c9197b3ee86ce98a6f20ffa4cd7622590051c22a78370944c2f6ccd1dbe47f0f84b95bbdc4172fe85b3ba02612bf10cd060bfc3f9c53194f3b4b89b0565f5720cde69fdb5c07d3a62ae0db9150ba9c9e83ba98eaed08ebee28eb19f7f9819809c054049407b7c60f665ca4d001a71a86ede08a2506aa15a7eb7b2cc3f748b3dde7e577689365232c8762786af9c90260040e504f32467bdbf655800cda481de448fc587f2088e32b816c913cee5c2d65baa05e27668b56485a128b2f5ba1876e9c9df8a61453ab2b46a17adf22b400fe7143124b45fd5a9b09f0b025efed20c1140dca51246148fb3e2379862196256b29d8c96052bcface2f0caeae96dafb169adea2135cb69c1cbfe7aa04db0ee1173e1b8d8f094a5ef2e972be12be60852f82ba3524a011492b02675716d27473575b90704bcb0378091d4b60ea687938008c481a6a7ecd508de2e733a694ec4b8d20c315f4fae9bd3edbd33a38c40d50be9aedd37ee08aa70d2cd4abc5f0844730c3fd93b22b8af6a5f8730d229b577c911aec8400540a28f188cb702febf68c8f180a77f8a6c9e1e5526a5eb89387173716675b49a6d6117f6bab93fc55a3d88d4adc41e05e88d2d8e4bd4becb11b9f30800d22df4dc4a004d2e4c00ccc26d4fb594e98b06f3f17dda8e7a322a906a96bb799f3dfbb76c584fd547e880b51fd2d13a598ef142b8b9d069f8d00fbb8f0b5c1581a8d8e9a80efe66176168fa46e456eaf7d9a2628527e20a5ce72f69c86a86ea4ef19c6d995db14f0d8fea655e2200eec5e7121fecdff6066070d1e652591fab3a2cba4165a5971cdf933a57ba3d55c277e7dbf48ee8eff6177d22d9ccd8a7b1b77e8f026796a1e8610fc3f24210975cea576e3c22414a70f1a255e1d17b667eb552b1a9bc262925adb4c3eacd15bc5ecd51157f6408f92b8ac172c3cc3329dd55bd7a11da9c7d6aab6e631158ca090372c18ec35c734522985ea2f3059ed0021748e71d058252ba73820855f609794a3488be81a5b6ae25dec13bb276da805494603921073dfd60246494e168f7af8468cdbc961ace62c33b830cbe081731fdaaa28731ffcca328dc2fb1986495139b329e80e14794f72504e3a94971b54982361837d1e94f3c3aaa7625a6e28312af6bdc5c2a1b64fa6ed398d1b59ac2d08b6d98d3f3698c54fe75852353c0bc3f14290ce4df070f825aa6a8dd4f1e070177ee88d732e860b2f7bc1cea4aef5c34643b470ecab392045cf454a826f2381d6f23881f53c7e09ef60070c55740baf32c9c56c61f3768a4456bd072c5fd93d3359cb4539fe85762fa28e5118840e3c6600c7795ca1bd0f64f654d9d09c1ef2c9720cf8a1c386b27dd642689592d9dbe68b4a9604a208ed95d2acc9149f36b6dbf7e0a53072c13d28520361edaeeef8cc7ff2e78f50e8e0dd131435fd496e74048b24c21a6367c5b46182e22e454950e5187269c089f13252f8ce225036ddb682dda4957bfa85c005365ff7f2eaee16b29ac2d32d64aa10438a80bf660421cc8266751d1a6ba1361c0161145722b5763ba0bb48c4454b61ef91200c3180438fd7715138fdf8fd7ce3448d7f55dc12d3f05357ed4de69eff1c37a9242cbf94f362e5bab8a90ffcf851c3b27f1002db0f04510da11898596666e81dd1999a035768e934c8b17bc688079bfde98cd0fb409ccc24714258b4bf19e2a6ee45945252252a0679c59a254114e22ff9f8872cac6b076dca95fc7008e6ccc5cbb0a91aef6a4ddead594b49e65410936b35b3e8034920d01cadd4b2730c9efdd1760f50f4dc511cd1110bf9148ace40fc779999dbbab19cb69d6e15ffadb1d7f56d708258a0347e63af31494bb01f5acd6e8790245efab07b946194b72dc4e71a4920a").unwrap();
-
- let signed_tx = sign_tx(keypair, unsigned_tx_cbor).unwrap();
-
- assert_eq!(
- hex::encode(signed_tx),
- "4d6f6e65726f207369676e65642074782073657405cf55731f284aa4c10ee438d9eb26062d5a79a0f53038b54edbcb7d8dd7782ceb4355449a0bd5b54dfd85a1884af8d74861c6db4a7c81da97b9f6e0c14f2d6f408729db4cfafec76303ccb7716b98119f1d6796e16ef05dd3182b503cca25e9ed541713e9dae0863bc629db187888e094995a529ffa71d866ae53e51d5feba94e669995cf773309dcae2bd7b95a4c88a553f97f7cc344c252fda1ba8dafa7dc84774bcb8552cd9e1f113eb49bc2fd0d45eead2bc62be572ae82969bffdf00a49467da7fe8d31c26ba025d4fcaf8f1ecf8e835d356011b24e66b9e7c694fc478ac7cce3af83af1b0830d45e7c7dbd59bd425da3b05e7362a272dfab2deae01ab56f36007fdbec5e4e7af1ca0b317a6d91728bd56f7db84e421038bb043e1d0cc2699cbbddd39b73fbc367ed5a799e7798f2f65e3b20b6c6217e0b6efd7ca71771b030d92038233ebbebc87b7719d9485093cc32e7533acd03ceea5d4ff45109d7f148288c36e03539448359eba52cd4c1c6676599b4c93eb3d9b7e6f4a3809bdd75cdd5de18f2323b18bb06786c28b4bc640d108ed1edc04feb919f000ebe52613be472cef230b30426c3c8941823032e03446cf5bdd7b6d5e79bb4e1ef954ab3d123d338846528036f6befb330f1cfe2c4547ea21695486294afff56db0df84dbdfc832679aaa0760c56733347f734c70c596d7dace6de4cb68f0a78b2e979d3f9bdd8f9f85d316e4c6382b4f0058baf5894a3919df8e54bc9505758ec3f18ad15bb5cdc4ad3f76727a0c41e5a3bcd72380883869831c61d87a07847a2a0e9beb143515f1f731cfe727dbfde367e7967e9e8ff8bc722f985fbed20db4954030dad5d30e7628ef395920c49433e2aba740bb228fba5cc352876c9b1cbb442250ceb9002833265279ed669a174ab3452ecfe6927307ceb25552420a1fc01bedafea98a4ccbdfee045f8ceeef13819a99e202b45ee6f9e8100cf56e5abc6b5b0251c60e4bdb8258ac874b3c41be995496b4cd55134c9594527f5f3450f3188f44122b9261acc7499d0fac00a11667d6f493f54f9649137ddc26de2747f528dcab53e22ccc5449299e6fac3e5e8be86b454cd30870bc0c137ed31cbab1e4947f9924d014f9b169875d3fecce5e746c33e4d27f507fa3974b6fe6accf423233022e93dc0f4a4e1dcc7fcd3778723b107501d2725841d579528275308566a208b67a6fcb7d55e49b9d7a18db13813676c51df960046c5b698b46bb7c8749a8a5a9ae306c42ef4fdeeae31012b6c63ac009efb086207aaf1cd5e401616f079cb472745b64d172a841aac670af1147e256b9d58db823045213e4523bcbca2d492a5213786bcfa22315311d98eafe3da91eff38157d952879bec8a92561ecb35938b3b31d4d70da84e496b10117031e0a62f7625bbd7c44d2147aeff543b6874b2bd4d5f0724b1b5f467ff4db89c31f803deee56561d738594998b17fdddad7b590f81c68edfc590409bc9d4ed4d4aba08f9a184489f09041a0f91af7768fb8aea790f2d4108e4945b237bcd6990e89c1096118267e5f615b784a75899460707b6d15126a1731258d08ed825e20b57800d5e57ba90ec65b01117d6fb6856f247de292e6ec75c62f8b0e9e43947bfc7cde0705eca0b4bfcaa712f0871f3a902497d56f226b9cde7d5f095b15774301bfe76846517291064e4fcd3423678c31502925c115946823c4e01db7524a8f0837d9fb585c13f9c1cc2c3aa3cf6e166bd198286a5b956b62e6d995bb4b2ce0c2edfad6299ba6ab4316c41e028224286a67889680250665281add76c720922997fd2691c419eef636cf6e8068a0fb29398bd760fa6f4fa8aaff0999549684ad9deadc4de329e88d5a555fc89bc40783a4e16f804cb2fbd86fd2700c5510d9ec13eac352c822736a44e7f9d6751b3b673470ab217f774ce62c693beaaeca556093a13e4d18b0377111ba221a6175978a2635affa8794924ab9963e6afd738c013eabbd8dcd27f2477ffc58f3b625bfde5e71ee2efb8df243c2efa8f7f199812cd448735ac33043bdb26e31d600faad0e09323f18abfc4880489cf32f0b44e5d2f9c4fd780ba831a14cc7849f0d751cb56fbf1906758c563aae7dfbd2a44d561c1cde47a3beb220b577ae6367fd9b1a49f2d25c1458e7542737a7c7099fc7bed14c23c5a2dab5acc14aef2f34552f95f3db305cde052b070b11228d3bb59cf6173cf148e2f5276274e6ddf68a74fae8e175f7a1952c0eb536821cf9c5fab3553b4e70c463c750c7eb010f106a0b059577aeff8b5f11dfdeef5f60263639f11e319653a91bb48da5f57bf47dd83f671b1b75502052ac8dfd5ae67f1edd177719a5946e6807938511a897d0b23aa99798ab4135781e114e8a027bca689fc00021a5b8cef5f24959f744ada3d8bc46aa8bec55f5b7c12bc08a085a47e4b7f15b5ea7a132dc1188db48c2cee11c8ac597b02a9343c7e7e205f36631b7c9477c793c906d9a450c80710c212248cb1dfb47f44104bf45136627ae4de912392b67da536521bb994d44227cfa3940e41148fc74ebb42d0dc04b6182943f2133a9c0144f42892d294bf8692cff4070ddbfab577694d8a23743b208d2ac59e6e9fdb87828702db94f568cd7e9f9383c64bd082bccc032155a2f0effc34eb23bb409a15e5e31b63ac6f701019acd7e9f8b61ac5820a396e36775f62589aee3c4bef02cfae71cd0ff332a6aa0539791e4e5c14849bc0e22157bafb7f9a781f66a6061ee33135f0f4cd6fbc8b3229d3f12cff288751b6d03415a83b529edae7369a5faae2326d29c8abe9e24f3c2de62e2b5786e39f93bc3cffca9568b77a110a80e3af0fc83a510aef15fd2a186a4fdb1b9a0f7cf77fea384833c89bf465d899fb55862ae02d23e67bd733953ae54e849fdd68d18c793681a0bfc651582a824868d4f32dad3e15ade0c2efce62c0d37e7e48bae05860653858dc0d9b806144ba5a02d2149c9194b6a62294049dbb47a405fde8f5cde6a8bea0469d6bfe195bb51ff91c68c0e73cec67ae4ddee14d6e007576dce5e99081c8eec5eb86380df3dff9f1ec3659a77db2d7b3a1025c9b450a266e4a00925c34be3ad08fd712552819b42a92ddeefc9411fbcbf9de54cc92c1210d36759ed971162ae67e445c2c2b23134cf473cb0a447ae3702b1126c6ab2cb056e7b996dfc766ddbba7c319225d67a0fcd28e21867e8dbe86ea789ab1548922775f0516881698d2dbdd86e6becfe96261822f40704419ef823f2d603e5837c16600a33ff1636cc4e21623afb5626f3acb30cf57aaf782278edc65d50f047e90582170243aa4458b4a185210a1fc0cd495b067584e4c505ea721361c35eb4101b2dd7358b105771eed5277263b5e78e122ac4ed5d2f4555211f31c934409d30304001ca02e94b82242c84884737996517b96a0a61fd558236ea201902c146d40320d8d9b8f60976c6c31ac2d6c0a915f1c5b70621a6c00611ee34118ee4ff023a1b74039ecf5304bfd00e89f4398a5837d5cb37ffc218a55ceec9331af415b0d080b25fea6a827d3fc66b67f6bbee5d4059a338c3a7762e76c253f87635066a45b11a11cf6c750886a459da41cae0ee50e374be2b1e173007416995c38937d790fd04e944962d12626f62ceeed863b189687cb958c1269c6e6b5d617708b9bd095de09fe24efd3f34e6970a429725d4ee72486f8afbcfc41de3227d352bec306de0347139ac84cfa5c042615ba4801695ee2f22dc4d95103caa896fa3a6d5f6f811802eb9757a68f376901766fbb85f79d323d2a9c0ffe323061980369fb327fbc7b7498da8fdd5311559e1b768f46a62b6c1206501004924e24abfea80e54f26965261bc3d1acb20ef0a1b832b10cef458c1c1c0d164a364c11b6fc236456ca3064b97fb47ded3c0552320dafe1a21c8a85df60128a0a227a14e4ceb438dd6e6f0220797f09e3a26f56db846afc47919c7cf585b4c0b44400519d38f17a77b004373fed67b907d6706b3e38783397df83cdf43d7e7df781997d7a00d6290b5acb4d51abec73a02536516a0cbbf5a9cdccc565add2d0da36c989095e26a7faedb4c0358636c962a6b9e78c353e4197cd4c5541b93fcbb99c56814d37c0f82422a33e515054629f3bf6509e64450644c58de96a05e5d0c2653972f89abbbec69456dfa6b8812e1ae913d6ab80719872da2e8414a29b318ccd3ec1ebcb4a941fa21d586df89ad5da95b1429ced26277f3960cb90432e9d1eef35d298eeffa8c87482ed996c750a212285873ec4c67ed44466c966b6e7afbb9241bb6a35545e48a417bb0ade3d9348aeb85afddbd4287cdc3bf0f6466cd1a5012d8407eaa7ff843fe1ac3a8d51455164da3c2533fb1fea0a77a50d86baf9179971e8b6a1faee7f1c4f61c17fd2100f8ff06564990227fcd784a9530560b47c40b5987d68b3498e05f75c1813d213d32e749cbf85d4808942442ad68a8295a120a084767e1ab351839fd15f55548ad477f8e66f446091b69ab4225b88e1031f93850d73401b7db17fdcccea19f931ee0e4dcfa59ed9fcd39e370902848ac82a26919162334ae6102ca1dff22a64c2515e130cf341c21d68c44a64efcb83f44a64023e9aa48e0696a55f72829088bd1dbe70efc55f81b6359e9da0d9a0465082c1184f729c800a49739f1c7444ecb89d1e4c372e3f9cdea4325fda431834e262e6050e797250c63f46cbd790aa5137221e7847a62dff7a4e8681fe6dc6baf20a36fa12806a5351e65b7745d294791383d02524616bedcff5e5587d2058c6f4d27e11ff6f153d4491a02299c1019451bb0a7c8c0dc9e2b726d64c7e6a6ba4507d61da54379a5666671768220684c3785f7814bc44abf154d61a19eb8a851a5d6cf4d5411ad876c9f68be1bfbb38ce179d6dd40eb1a98cac6bb500a81f294e7ca85bc21db938dabca7374419a65a4b1b0dc01a12860903e32f44d796a7323508b234a81ea2166610cc39ba5a807a3ea5aee19d6d5d089bc7caf30af19d32a7c994ed2ab40a9b919ba827d3c419d2a241b9403cb54dc8e41d118398731aa19640dd7e803baf418f9d7808979ee18913b5d5c794a565a2e191dfd49bd4da87db25e39e3ad9e71a38e28934a6f9ce449152d595a6557efffa2824426e3190beaa2651e4ef4816bab2276d4ad344bf6fcfcd0fb5df63f21fa6a85b759bf259d55303528ad12d517856eeae9d85c5e3a20d4ed782d36b27fd4ae817829db5c550ee0f8330325f9bf8b8d3f96ab073c51f76b64d1a1df2a699743610882b802f7328ab9340402ed29c6d15ffe5e8c38f79105d1901dc56d171b6f10a3fda98559d79ff49846298cfe2816a57fa1cc256075c1086fc9cd0853d1159ca46c47b089bfe8cfcaa1dee4c23921ba0222c7024a585d4a98423f54086801cfca59d7f9ef08e9595887df5136facec28955f758bc95ff1c5cd2aa0a5f5cc10adcbbd7131943995a54ceeb6083d3ef348f67f03543d9840d5f8a351acf332cea413df369c716bc38c8e041ef262c84e10d6ce0dacc6b10fbe475cbc23646e4c74c7018b5c6590e7438a682fd420138b64b1f6f7b3ba5f7f6937cc518ae23f9b774d6d23bf8499497ca700ca94f66c97245f075bf15bf3c2811bb61e3fd894375425d3432163971c579495a9d5672b7ed3a3f5984e40ba6bc872f3f2ea678339d2fd2bd504cdf0e7bdafe99b7a301d09815fb3cedb03a8228e3a283692001a03df8539f5cb045e8b7cc31a70b352ebcbbd2ca194cb09c5a780b3bfc2917b9280fe8fbca9625fe359dfba02f9956b5e358efb5650888ebb888a6dbfdcde30b67da7ebc47e8a621f9ae41e87e59545d090af25c1a237c89f7a877db8e283d00e4ebca2cafa77086570e23d986db757ccd45cee1042a6e050f71d07ea83935150555e2f817363002d2e1f28a43d6b6b65c8d6a54f82eb891ff226cbb13c4258c99c71ead878b04a2b7ba543091c8c3dad6a7fe4ea1186e248779178c675dff20765f3722e34baa27809c6bd1acd6d3fbed1311406afa6d54813d13a52bedfacdd2466e11bb3ad21a38799241105cd191c001804daa5d73e641d9333e2273ae317194329b9cca8ca2478f9e7184957d298dd57075803c6063008de96677e41bafe40a83416c2b289a6df5aafd918c12da81b1c5eee91bf7df9c5573f0f39e86a95e45f85a22d16881a78ba179b6e731081f3e788f8bdb3e255862afdf15194796907be1a38ea3b0093fcac73e030bacfb15c8b04f8fa7e551012f0684ff17b8e2c21915c3ba46c1de1be33aeb418f62ad8cac179b3ad5a157a984d8fff9fa012f9a95c31769521f6d93c7ef6718981d1f7f6f23148394b49b7bf371f53d58402c191483d9688ccef9b316d12ceee5c3e2adcf6e34ec6756e2b99844199a1c9cf0b9d1968cfee040f1545bc93b98cbb83a95e7fcd3b10b3c9dcd825805d43ad280d2d5031160b0262c47624f825b22047475306e9a3ce8659570d52d18edd39e2c36be4da454ed757497dccf11ff381fe22286836ce85c720823483372112df45de40987bf43173fe847ddf1a28eab5eda170c44fa0f32a0869a3a40c36d4c6b630d354f37c8110ba62deb90cf3de8797f5af5a1817f8f7f17c6ebfcc21664ca582b7c7dad6224863e641298e6dd02ebc4394a10cb912e5fa94b51b7ef351aa2e91ba95900b008f271f6a8ca414d9e3d8719f62601e773f1fc1d74fc3f0b214cf8b62b80b84db5cfb1567fb9b582c4d309da6a980e921e1563a014360e4d51b966d9ebac7fee64c6a710f5601b9ef4bbe83c0ea1a27dd31a8aebe0521266324d6af36888a5ba312afaca388b70a96fad2c6e97b3c633c7cc21fc54cdb1cffa91e6fe7d0ab9c334c25778cb3b32c522989dc12ab5b43c2ea78ca64d835fbddc731369fdaeb78d5109b1793cdc4dfea0b7157ddc8bbf09249c475fa290023884ffc23cf2cfcfcdb59f2f4aa6227b00160a5a0c551f0f1c62c5b644612fc3e28558897b1f5a6319f4a7878c88d19b92b71ae6d0e9bb48aee0a9808a6dd62be048c6aa4e9fa4ccc646afd9450fdae0e69d11a9698580221ead48b3aa2284d74ffb5319cd1b0ab5b84f13959b06d144123438144b1adc5ad027f3e402fc6ed9987717cb0045b65aa064d46dc42d24026739b282dff2c2bb1e5772bdaf7a18a091b1da6cbe9263c75ec869deef70f1cf26013040d53dce677e743ff5054c75555f527feff3a945bbb423d3bc5048c4688785797c0fd9f228662929f20cf2c336ca8484743cab454a5bc9fc6b1f85c095d2f77c015cb161535eb45bdc4b0f4ab04f3a0d7bbaf10ea2f1d360cff8ccfbd1a37c856327d4b8fa2f08d6f12423bcb4233dd10b6e8a6a3df59d6fdc3bf2fd55e7aa9ec5e38a7c240d137f7ae86f9fbf9aa6bde0d9fb1da72def2bb5181159e3aea675d39121cf587061a76bf33b4bc76e35744a3d3586de3b1340d5e7c8b7c435862e3aaa6807cfd18677e762e07e4eb6dd7cb10f4e8ca4f0e621cbf1ad4a2b4bcf8cfec2be02c438f5351712b88fb7bbebd0302caed051e4fb19e1c9dfa4c0d59bf2807a03edc58c14dd6855eb283c9f5ee788160dcd4defaec600835f9c3e4b9873d86382740d153beea5c40cc99d67a4ce76a8d8a5b3161df62d829e3f37944221d56368691566aadf704a0bb651dbe3c04672930fd79eb0ed647a35dec87303edefc85aa4d0d46b390896f1fd50c022c131e7258fe839de8540f7e3b8190c33bfd5cb3a2fdc57efc8d8aa5f76b2ff69564bf76f2a12f31d0695d10ecd0e5fad6569becc8bdba6ff8496ed9b4af6508e9694be758ed6fc1885c3bf540f8fc627720bd914f0ad68d8a2dd7aac10928f9e36b86d735a51b15cdfe4c50d4dde32e30106056711f422bf7b48b652b2470d6175d4488d3384774433ecbdf56d9275aa9ddfd68f73ac1cdef2ccbacbc938029ed79ea6f246e569c7756c19d468e82975eb64b9cec6f7456b9135162b34958f4701aad0ddebc11c836e4d5f1c50fdab76c8c800a26e5cce2a4583e9fb2c9ef0ba5e20f88e16b8db10867d32259589d92184bb676d9d696e53ca263785ee4b77ba1253dbd669264e3751566aa23d0ba5b21d65b6f92ce0af69706a601b94dac1dabb3ca87cf52480a747823f49e8e9474f18d8f44fa7d6d777ec7fb4ea15cbc0df049346cde9f35c9ea0ebb55eb44a678453effc3f2f78b47de27a2f5f6ad2fb8b10e41a30464863697f92cb66de534129277992657534cbf205a8ab2f983a8cd93e2366807"
- );
- }
+ // #[test]
+ // fn test_sign_transaction() {
+ // let sec_s_key = PrivateKey::from_bytes(
+ // &hex::decode("5385a6c16c84e4c6450ec4df4aad857de294e46abf56a09f5438a07f5e167202")
+ // .unwrap(),
+ // );
+ // let sec_v_key = PrivateKey::from_bytes(
+ // &hex::decode("9128db9621015042d5eb96078b7b86aec79e6fb63b75affbd33138ba25f10d02")
+ // .unwrap(),
+ // );
+ // let keypair = crate::key::KeyPair::new(sec_v_key.clone(), sec_s_key.clone());
+
+ // let unsigned_tx_cbor = hex::decode("4d6f6e65726f20756e7369676e65642074782073657405543582a66d85aaa08a665445b51cad7c13ce24ded1fdc6d21226d8d0b4615331cb80434adbe0f4e516aad44a0a13015396a1945601a9e3eab1c4315ae4695ea73e28f3428cf66a1cd344191f1d85c97a70620ffc77ab9e4478cca0d7e3c9492aacbc1625b462ff3d396e4478d4608173810c714d7b2bca717d55e41b183702432198ea217c9fb2a962ab0e5189a0302f7774377afa890b7851b268a16a263f0daa0715ebad83959cd067a472a7174471874be870f38c8af5af20c680eec99fecc1f23397bcb9ff4e63f5fa28c7f18a277b797a1173ab0e1eda3ccef5376204c364c50731c63d63f312bdc0f2a50e6b726c42de07d84fa19f2bfcc0133a4ed24239e191e3562c6612211b4d78994c23711331975dd16bcde6991862b7a354212d1547f4f7edabaa57feb3d87b01bd8687ea65446f73119f85fcdab0d3fff3a4c60bcb87442f3fcc016f6dd46a6babc56c22b5ac6eb0eaefb17fe7d750b6b2a1e1990ce5f07b3292a60db37cafb851886f1653b41dbfcfbbfa55a1916ad23598739699b8265b02b4ae68a86d4d17fa77428b4017506ee640aed29d36532fdeec7f7b329a8edebb54bf2245b6c8d4d0c1f0aca00d4c2ed71ff0a5c57a8364382d03afbe4a48e3136ab816c9705095fee4892ace2a6b4eb920079527b2394baf3fa5d1d8f7ff08618a1934e7e34f38bf3f69d15139492c664e317f8d916d0b0cdf3fc8dbaa6ce73d9a08e27e641b5e2e3c543a551dc7ceca3bd7f54c228c63672c0d4fdf1004135e1f10e3243ae701a0f134efcd874e0d32d8f52cb4cfae1972e9ebe358ff69ff2427cdb43220c2b7992f6d4b1ba882c3d91ca91e0655c3e6c36b3765a3f41e75e5747203fae2077a33df7f2015c39a5ad069301d52fbf95d2fbc1e1c45aedc0253992c8211494212f6ddc942e7b0256e36aed8da044b7096f7e768e042216898ff6550b5245086fb20cacc0af9d53fd1f0cafba025d26c69d898e06fecd423c7961727c3cf109d4c429f049f23b791c39b6868b65b1dc699aa97d21fd54d4d1cb891d880685528e57796943b89cad902107824a0de386cc4c94e5fc1d7d45aca2db5ad2526ec72170554c9edc0ec73693712ff21712965539f32925bc4345c0f62867f4fdd21f98451c223a67c75bf7cf56fbdef82f762f48052c2fd8f922616e779884c2f533f36063c0a3bf350f53c3990eb815335cc6925dda858123648e2b83ee040e016a618158558f106412b7d99094431508ac7d2eb32b3e495faccaec0aade80a6e6b5958a79faadbe53f21540721362a6d99bc38f3e5d8e10ce049770d763d1669f764c297b44f91232ef2d286ea450a8c07f2caee5ebfe6c5b65c498d54343fe0980d8da872a7ec8eb15ec3ebdfe60482d85a1b52dc5136495c7d9e88ae2652bc6c8c8e765be605667c102804fb2bb118ca9d800b2c5649aacdc9cd591cbad79370f200dfce1d204e2031711f00d7503d613bfd3674b144911d7c9d7a07f1ba7d841587dd41f76dadd5967b329bca7d347570a87f483a770d5e74587d17b36a0313c44e4322f1cff801524d645df1d504ab8e7ac2f5d9fd41fe26d7188c1089f596668624b2a1e755b63e4ad456d466eddcf5f8837a868c26ccf9f3fd3088d544b8ebf113ee0de0254683808d269c8bbefe9b2e29f8d3f839c59216bcbb40ba4b79350e4d9e7d283953da6c89b7d226213fc53a73fd138c10a2e17b5dec4b864d17bb0dd3a7184ea8afbe3c26d5f2abd7bdf71fcfb12b35ef81b5d5d92f4391c26ac927f75475731fda3e0cd72196c0b97b445cf6a6ea5e8dd4cb44463445537e989e4b8afe47d98ffdd7efdec2f57725f3a5dbabb8e2f464bfe3f6931600681eecc28a120adcca788ba91208943c44cd98c8d70e7d0c3100530a01bf5a8eea88742857be2aa69aea0e08d3076efd8c71635c4e42d533f9ced9fc2d491589c48992a7d51f0e39b664aee8c22a64538b0b4db2b57f1595a3f372779c1c773b75f7e9ede737e44998270e0b2bcc267d5e728ef9100f52f89e9a4287d4a214da03f9e9e667b4facb4e3a85c6b18eb5d039b40f68d5be76e3a28d1fda09e32ed8740589e0e371179af44ab257e72fec909440245fe3ff3483ba6d70d1fe4d51be4a440f966a720fc999eddee8a1eae684081b48b44a53d9f9db16ae660540afeb2cead4d9a5049e3ff2fc9f60dac662d9f6102cb0d266150c9d4fe760f5851ebb5e82a654ef21e9a8b1684a98fe2d95a238c6a6bac53498e1d196939c92fe06cf40052d541f0ee33d00e6d07d55331eed1c9de08c66fb255c58bd50fef1277bcf4f58d1a2b43d3858da56af0c8a6e18fcab82aad00250c7e2f656a2597efb9170386f553aac412d2cd00c9ce588f10dadd2d570b82757b1a3aaaba08e5d17305a6e21fabacd8f32be120631dd6b247736e221028e82faa443e796d4129ea08e50b1d238b90c05e389cd5a0f02f3cd676ff5f3ee93c27f5b6ca65e403081f0c79192f14df529b80e13857b521b3b63a1dafd9de9d1403fcd9a0521f4af48589298ec68c9772c010a9e603a91c950c9197b3ee86ce98a6f20ffa4cd7622590051c22a78370944c2f6ccd1dbe47f0f84b95bbdc4172fe85b3ba02612bf10cd060bfc3f9c53194f3b4b89b0565f5720cde69fdb5c07d3a62ae0db9150ba9c9e83ba98eaed08ebee28eb19f7f9819809c054049407b7c60f665ca4d001a71a86ede08a2506aa15a7eb7b2cc3f748b3dde7e577689365232c8762786af9c90260040e504f32467bdbf655800cda481de448fc587f2088e32b816c913cee5c2d65baa05e27668b56485a128b2f5ba1876e9c9df8a61453ab2b46a17adf22b400fe7143124b45fd5a9b09f0b025efed20c1140dca51246148fb3e2379862196256b29d8c96052bcface2f0caeae96dafb169adea2135cb69c1cbfe7aa04db0ee1173e1b8d8f094a5ef2e972be12be60852f82ba3524a011492b02675716d27473575b90704bcb0378091d4b60ea687938008c481a6a7ecd508de2e733a694ec4b8d20c315f4fae9bd3edbd33a38c40d50be9aedd37ee08aa70d2cd4abc5f0844730c3fd93b22b8af6a5f8730d229b577c911aec8400540a28f188cb702febf68c8f180a77f8a6c9e1e5526a5eb89387173716675b49a6d6117f6bab93fc55a3d88d4adc41e05e88d2d8e4bd4becb11b9f30800d22df4dc4a004d2e4c00ccc26d4fb594e98b06f3f17dda8e7a322a906a96bb799f3dfbb76c584fd547e880b51fd2d13a598ef142b8b9d069f8d00fbb8f0b5c1581a8d8e9a80efe66176168fa46e456eaf7d9a2628527e20a5ce72f69c86a86ea4ef19c6d995db14f0d8fea655e2200eec5e7121fecdff6066070d1e652591fab3a2cba4165a5971cdf933a57ba3d55c277e7dbf48ee8eff6177d22d9ccd8a7b1b77e8f026796a1e8610fc3f24210975cea576e3c22414a70f1a255e1d17b667eb552b1a9bc262925adb4c3eacd15bc5ecd51157f6408f92b8ac172c3cc3329dd55bd7a11da9c7d6aab6e631158ca090372c18ec35c734522985ea2f3059ed0021748e71d058252ba73820855f609794a3488be81a5b6ae25dec13bb276da805494603921073dfd60246494e168f7af8468cdbc961ace62c33b830cbe081731fdaaa28731ffcca328dc2fb1986495139b329e80e14794f72504e3a94971b54982361837d1e94f3c3aaa7625a6e28312af6bdc5c2a1b64fa6ed398d1b59ac2d08b6d98d3f3698c54fe75852353c0bc3f14290ce4df070f825aa6a8dd4f1e070177ee88d732e860b2f7bc1cea4aef5c34643b470ecab392045cf454a826f2381d6f23881f53c7e09ef60070c55740baf32c9c56c61f3768a4456bd072c5fd93d3359cb4539fe85762fa28e5118840e3c6600c7795ca1bd0f64f654d9d09c1ef2c9720cf8a1c386b27dd642689592d9dbe68b4a9604a208ed95d2acc9149f36b6dbf7e0a53072c13d28520361edaeeef8cc7ff2e78f50e8e0dd131435fd496e74048b24c21a6367c5b46182e22e454950e5187269c089f13252f8ce225036ddb682dda4957bfa85c005365ff7f2eaee16b29ac2d32d64aa10438a80bf660421cc8266751d1a6ba1361c0161145722b5763ba0bb48c4454b61ef91200c3180438fd7715138fdf8fd7ce3448d7f55dc12d3f05357ed4de69eff1c37a9242cbf94f362e5bab8a90ffcf851c3b27f1002db0f04510da11898596666e81dd1999a035768e934c8b17bc688079bfde98cd0fb409ccc24714258b4bf19e2a6ee45945252252a0679c59a254114e22ff9f8872cac6b076dca95fc7008e6ccc5cbb0a91aef6a4ddead594b49e65410936b35b3e8034920d01cadd4b2730c9efdd1760f50f4dc511cd1110bf9148ace40fc779999dbbab19cb69d6e15ffadb1d7f56d708258a0347e63af31494bb01f5acd6e8790245efab07b946194b72dc4e71a4920a").unwrap();
+
+ // let signed_tx = sign_tx(keypair, unsigned_tx_cbor).unwrap();
+
+ // assert_eq!(
+ // hex::encode(signed_tx),
+ // "4d6f6e65726f207369676e65642074782073657405ac90bff4a8a3e5ec8c3388ab705ed1b92a54e56255367593895a619297b5a514eff74cc1a4d25e1885e954a49f0fe32d17c9a1f645676f9da9784e4c20dbdb8dc55674bca8b0b5d7789fec1a60e856e72f9eec005394ead1aa35b3aed93c1407f111094e9acd823c8521041a2befced0af23d53910c157254f9ef8176e7747117c8d95cd00a33f1ce731d0960bf17a0fe5c1017e72c0d37aa99e14a74f164226e09ea7ab6303632d45eac0cb2450f98d41e26853831ff00614e053c177c44981e3baa3d4aa5643899fd7cb948887ca2b089d867f187678f0d41aca3dc62f7b4235091b9cb8bc42895e330c67255be3977c81e934d59b0a814c7b905f9c8e315bdb8c12d3d1884fa0af55eb1c50e862a046d844049404fea59b115f5351460d60cc09f7ccfc0558ad03b9de8121465b27361e3745b7ee19022538c781f7e60f37aa9494c60351452c1812c987e5279eb60bdc07ac073c2a4ac39c812929cacbcbf7b3e9e53f92c7bb8bed39b53c330652b7ff217ebbc153d1e55c76d35c5ed8ebc3d949109602553d18059af8951f0133da347dc8ea656352b5bad5a1092565ae60cae35c8899edbdc7e782768b40d04c8968f4c80b84f43ab3ab005a7e7d9f3acbb2b59d35313151a5b20e80da0e055d402e1a4492d239d7b9583a72c67303e299e1673a21d219d36b0f318669166b8ee22c18487174a771462815cb0bf94b7335fb77d56497299e5cbc222fe265359149a82a49bf222ecc7f501f8b7d1c7ef314acd9ca11ac1d88695baf616bd27192be6408b99b8ffa9b6bd29aa175d6d1cb9fa11ebb210bbb8c8e66313fa7e39b6c0eee511e674fb74d56a4e5583fa7de2dcf59048833989b4614c452a8d069284340e62285e2c3d6e5b3c9aba6eecf808c927b58d5350c28c2400aa1c39127c9315a57a8155f31f6274a371e971cd7d680896500bf2c4750be115b17296c6c8c5c6be72b1fc8877f7a1a0de3cc7b5a529a63f1a9bfd2a191e6fc1b50a40936eb8e7d102d5f84d4d8faa93587c7dd5c76abf81274ee0d76d1eb193eb735e394ad658b2f722aa27cf4975fad45a3958b8fc1f0e0af1cfe97929109938206512cce615421e738532072e1552e07794a3d415ab702ddb2bc52b4be0b06d163d9d9fb88d946ab06434420092e793746d5f32a274af9373eb33d3390e12be1f13ca25e71813d1a5a249cf21f9a92c6d4b51a3cd4bdebc9ae198479503ffb55880775ff85faf557c0b99440d174b7ce78c04e97bb133805100f1144d70427128f31bbafd2d995a1cb8e74bb4132438a33598279d131661f6868fb8e6410cb3c1c9605fb67624c198bbf0d0891df1f1d1614e5009e3171125062d2dc44900074c02773e3d8d4a8433329955e82bd9c583d7bce7c1fe0fa1402fc579a1106f3a30eaff9ff3119831f7d19b1b45dc48d678db8a94419099dc8dd1ddd7223bd90489af1169e5aefec1dbaa5cb3d976bfd0ce5276b421f6c994e9219248e38da639bd79de74d4c798c4fa5ee520d5f14e35dc678492ddb1c885d199344190892f19f1844538c10f40267c5d61dd1efea0c19025789125e68d5c4f6b97b8f4324ba76e3e8c303b93174e7c96eb3a07a833c737217a16a7721ff0a25efc28df8202b716237daed9dc27231828dcdb7f1c7eb26dcad925f36d2584f4009aa3fec7b6016a02f270a9171d09a6dff72bf2629948117ca3438fa4b4e2fd4f5a0da1c126586c56fb61ffbc17099b691c7488e490a63fb9ff4751526f8c450c53febe6f38018b872bd273cbe730e0053918d02eff4d6cfd7b5a4499fa3ed7c5067ed8d6c5632b8ff5aa6bc319585d5ea7f8065420c24fa1b4fb693a24ad1acdb8075022fc00c3f138fc750df59ffa7d2e87c100be2adccba73a3175f7961217af8b212687bfc2c33da36a88e279c9c57fd2678451c9352819f0ef4b394994095579ce51547a477485cb8f276064bd5cd8e3dc190f9365b33dcc86ad4faf29530e740d07e57130c035da356a81e151acbe1c85739d489c416a44b9139cb94a7aae8f9ad8cf2eab2084fa101f9466f80312ebe4c579faca2389feeef9bcedce3d71acdbeea3576ab16031ebe18193217dcfc1f9a9d2054192d1a3752d4e5e399a71eba8ba159bfc01c353ccf283eded9f257bb1b3829f22504c8ed2589a55cf893a4a995ea39e8d924593ad330809e3acb100efdec97eca442baf6a860571e8200406664ece78807501c1c7b10b92e351f473a8e9753a50edc7c77c967c3e851895bdb016315c516e2b45fb1f1274d4bd3b780f322dacdf4b77e252ff5e1b83d8e31f38ff5158bc88fa860b64bd870deb2de94aad7bc2dc40f87097cc5c4cffc50a5358f38662414f1429786e6e1e10d97612d1d845749984386391443d475115315ae55ff1927b5f0fedc640bca0f238dbc9df2ba854a8d34857078776cd93a361137d9b855a4b4059a1f4d4dc10588ab840899392cac38eb1b8fa1bd09ae9f279ba724f6ddd740be6092bff5f9b14d3a836295e7e084c71b6056189bc62c65a4ae419554971f2aab584a78cc36485524206737b1c1f5336259c866018316081f079c78acd0592376f3f4cb864959e24cca1f4340aca2c09edcbae4e6114527f83e4b377dcf71d40c67bf41a021487387ed4c5166c029888b039e55728a8ca8ab37cfe53e425bda50ec3b194cc062484f1092058308550117582aa9798bb240d1e0edb35125b8701bc630e44fedfe2902dceb4ca75057479fdebc9ead9b7883138b56bea1dad40db063b8e72cbf0d8f39725858f6545f0c4dae55d1f7a136d8aa59557359250105931a22f4dfe2b87d2155e48a8c89efc6939d7755d62858a43b66e933a7a6520cefd4542993e81a133c70177a876050ea2ca30a5dcce281c062973c88a0bd05f6b2bbd57b0fa19a0ea55d64ed43b73e280a048108fe43f8955abd13a7656d1bfd7524cedd978a576023794245a117ba3ad2899e3f8f02e33e23232f16ac7e075cebb1aa29d46894e7352bebe754f4236c6eab678050c7180b57163773017828b4ed8a9481c5b231a8d30f2ed5f158a4814bd5dcc7b8e222be4f77b03198b78b35c30bd1b0b22f83e6fd9340a965006b834580915d1b5e8ad249fbb6402694d531130fc629ad701bad45be31c47af8b66e9a9691ff8d9b54998dc772999262217f689f6f672e3546914ecd0d89dcb07cdfc3ab07c0f2ac678722a5c2f02301b5fd9dae5f93036357c41037d3140d9917ae14c048ab7a2314711f86b74dd129bc659ed547a9056987ee976cf86933714d5e63545355666d32c64b697ac10693953ce5b7e108903ef20f466a3862f659ae6a7f927e7d26590e306401bdcf1bcb667cab5ecc2e385dcab3398417ed0d95261c2f2389611662eceb6362c99fbb3defbee748e57899f01e51c7cf55690919dc846ee48f37d2f6dcc202cffb2985f63ee060c444beb69316c822dce8cb6c44faa5ce947ffdcff4062d8dbb6a8ffa827917d75c02cf0aa41b27808116b715f9ea78a827476fec0e78d40996771494d4db282db77c6751cbcd955f25bf84ef2e1b6875a0fc8980c3d55f1cbbf1803f27a7178792fc0db3951251b655f8cba7ea01e0e303f0d3c960e0229283969220a128ffe7865bcb724b8823f50c89ce5c3298f37cf6a64aac08b9b01435fb9f2d7f6b9c3791b2664a0b1f5b04f41f89b21fbf88c876b591494270a2ca4526296a4c3bcf67e24872093ad89afa2464a2ef7a74756cf7d453f3b0d0677dcbf83a94ddb2f88072c057f3c8ffb1bd99639f0f0bb52ba24937df23c84d1179e4046fc1e2d666cc96fbb55974a92511b5a594ff0223402687a5d21851efe6851bc5afcbad0e1b780df867f3e11c9e7bfd25936fb38886d72b02f65a248391d4a6f46dec0ae09622f95834efa5f78a17ba5be566d7c42b3fbd3a8bbb7240567dcb320516f1694471402f809d4d1ca1e6d1b0365e5fd75ad11efddfcb9136654657bebd600e4ef1d13cfacd9095bda027d38c19c1c5f602427781d723a85950bfc085b8d83de2c8370e32dfc707f8767990d1d6fcc23c4825a01f345702bfc4cdf30e703be4f463825fd1eebd854a5d63a946ec835ae3cd205e928e2b7bfcd98d4526e0b8467c004412e2cae4b1ffd30c571ecd52fa67b9c0d5db82e80a28ce5f47058befafb25c9bb598627f33d5fc818efb29ef7447d67d3ed8a014bfadca41f3a4ed63e3d369edd17382e788e8f6d73b100c85c3a8ecbfd4a6f5c21c69d224157435953d7ddbc77f39772881402d0a717a55c05b850b3678a3cb9f876c9aa1e922b31166519a2eaa830549d709c1ed25cd9d9b1fff23139587887a2d54057104a97d001cde35728f924d20d3aa7a196e6ca2282e2f3422920de550604218c28aff4a6dbad37645eeed7ec0290ee1e7babe837bc5d2e593702165a704263ddb7de9f2f2ae17d71f443c2579f937b7b56cfd0d6ef0e6940ebf5b531ef2b29561426939d559ae7874ae305b1dee9d21217346a719b284c60e4637eb7889935593d75dd0a421fabc7b65fa8abc2b879e12afb9877f5616a64007f79efdc762ead667ac99692ef1198ba2d17de9760e4ec7f09c6ff271c357d32eb845af52da15c1ee258d5c270d74e4773748965ef082185604164214597479bb51bfeba928c63975bf1aef1ca23761510c6b2420ebd639d8c310cc4b0ed09fac4f72b14d68cc911b5ceaa93c32a6b581e1649a18824b7080d1947afd4b16d51b4254a296bb343d029dbb9467bd2c6a698caf74242de7d0c6bf0fcc8ad25d128f26883686d8edad42b72923ea8e8af531381baab0d9319827d4e8137962dba94b621a9660bbb6a10f949c213c24534baefe46d1f586604c6265d5d71b070076ee2f1036948b50324f30493b46142300f7d8492f9e5eb4fecc9b1c032c320ca470ffb3047da3a0293cd303546189d6a3e1101968b71d77698392210adb89689856af96d796959e263a07978e9f10f2980e40cfcb79cdbb70dd1e54e87a61706728150dca3024658c32e527885b268704e62d081af5566ee219272c408b6081beb044113ab13a6708bda7bf7149b41dec869ca1f3f6709dabd08bac6bf3e97ede9aaa315b3d01917bc4c281e5b28f50fa30bbef4c4e8642e0d4ba6fbfb7ff7f2e70c523a144795a32e0787f05ad90025fce964490ef5270bd8bc9f0a1b4a6ea6e735643d766afd2934d290deeb35b9757f2d35947ebcd83cba3122d1bdc1596bc93ae6daae61777af35cee6dfe45d51175e0d391d092ed994f1f2c90a450e9a8f451b4a0ec75534658999f5f1c16e234f98598402f227c5dd7acf9a8fa9ba901563f1c0866d32b37641b564153560e6306038d0c3e3aef112a88bc48e579ed3792a90780e55c221c0532cdaabcc14fadff633b72f587ca1cc32a9097598b2be24b1f36b41937c029596a42f6b8f947fada7183bf3ff24d6a7ec8f37836231908745c547cf093c9090c47e6c61a087fa85c17ed57190035ab39ce30ff224e9ce6a45086476216155af903420c7159869e896f42d311a3d6495f1dc5d45b4dc8cc51298c4fabed9b95d5857c10d1f791da493becac0773317e8a586257e446e219c66b2e667d347b20be93c4c5549c5e7af869489ab3b52fa056b3dba7ea63daadfb5103ad435ae159a2a175ef4d0cd5af8e0f38f8a73649b8db545b0eef449bf52759e371da64482d04b1bc66c1edc5d7e11a6c529d058822b86ed9e4900613ad38c099236e2aa8bee79293e532845651466f35a1954e737bcf3c9fc0cde02ba06ad6eacfea9431c19a2d8685c059812f706b5921e048cf60f848d88435f721ab126f7738eb6024ca25a601404121957f901546d447da172cc626c6c3cbf45aa51f99ef7d16b25212395c59f5fe6e466dd3edaf9fbb07ce0d71027b5a0337a65b12fbe9caf879126e86679a20a57cec4098906b5bdb5a4553904634af6cb4cbebf40ac03bf2d7004d3dc0f889a63d7abbf24f5d9309b6d181f1693d864ffdc67a14225a0701d9cffa9392d64d2ae02172a51a4822cc914ce925eb279f0455c969e64704afaa0475970ba9aeac4c647fbcaea1384c75451cea5a72f5c5a8110f31cd60312ec7a36859a141a08b4a502149a3186cd452a80d7f9ee93243a263ab6429f72f7c344d59a0179924f3a55e103a1adabbcc10bae64b84a1dbbab9ef67c726f8e902be985f252ffdea4370893d0143387188a382fbfd4b086f7d4ff16dd4aebc7d0ec28c824d43d19cce1ed623f7fd94f9ebc835a9dfde1307fa260f9d0bff6d8b2a78cc9a6783b137db9ff385adc12772fd6cae611838f0b795717840b8dd80efe8f134adbffc22777287b7558ec51ae01911f9cb762543e41a495b9f061bf38fa5fff1aa831997e9d31d6e587f01f4938cbd84d8c26a015082266b7873db304f9b7cca844aef81208b81f73ecbc4a01aab473c4b5ec32e31026b6369c5ffa602d0bfd3c5e675a581a9072e391db4e44eec9523f3f142dca4143f587177197c8cc594a289e8c98666f851b2df87c78d897176d11df13af5b76ed09fc9c6de2ab0ee8aa9fedc10a47a0f4c814db3d8bf2ac63fe325a683427c48479d5f89e90c2b47c625c81d2081184f9cb3890ef380250ddac04ccb093a1d5f3955ff2ea9fa1e0eb782203c4b8175c837706f5713ab80e34d39a5bc76cb10a22de8f9b5ad36e16859a06812651150b858531cf310a731c54f3adab14f74760617694b19ae15107eb62dfe234c1751b7866310b9b0a1340962d81e4445aca7e8dd4f6421785e4d22c2e181a31ca6db8e233fb80533351395dea08813f2158149ddd27e8eee8bc2915eb2dfebbc6d52a330109f2089097cbc35c40fb7bb4b0e0cfbc0920eebb32927120d3da89a9c22b613dbe9d474f92b56ceac0cd60569174971106083ea665c773f6c09888f9c198eff8f364a83f09fffee3dd9e34d248beab04411f5c0025861ed7196f877a192c4f8cdf9b67e39db8c6132244e2979063e3187271fc3b9bcd56b20a9b92b88a668e57230e0b4745ae0a7a4ae5f797b8a110b0fb8f1b34f4a325acdf08ac8db88c0cbe9a538b3c044416fa4b5cf85efec4abc07d989b11bb379f6251cd1a1bfde416319287f03e37ba079dfdfe1e32050874408c46d2edb18a4321c6b9ae1c562611b4bd1631d657b5de45a91fd22e72be955b2fce8c03ff5f9dd345cd846239eb98cee0e4bc526a3f3dd783f1f6c246482f46241fc16e273f32a218c3a9dd9d083c6ec3df1240ad99807bad8f3dde238875965f0b64ed728a1aa6d9d28bd7339a585d440d3908c7b9c1a69e077f60518629c942d68744012669ad5fe44ac84ddae1c8f4968db9f360da4afa062656d99600d33b1cb3e89887cf0a28b7182babfac7f2cb2e0a765ba6ddd0aaf14423e191381a03b8eb110b34ba5b670e3949940393cb916823d4d924226e43110f5c0990ed6241c1b954e38facf076f54baf4f78032db6626942ebf4c77425afa035456d1125ea5a9e70dea24bff1f38fbdc21390b6c988effd244d5ccc33c8164b03114c9d616efa2cf677b5136d4109a3178315b675ac88e7b6a544b079c7439453ad44e667b980cfea26f4119f22280328f5bfa9e304eb50ebabd70012c18260de0937a58fee8d1fef2637c9b5e6e450d49fe6ddc2f8a800ed85b2275f4f4716eb78616b96e31e91cb5146f6711f3ac1371029e1389a16ddfd4ef53561409d5f713539877d1f40a94ac39f76a678d5aef7ca65f95b784e4d5f19ba7d6d514332fb2cfed018cc932fe6f957966b3c2611fde40772b5365d08a444b93cc9a65175adbdcb3b87c7bf878963e5b15a6a07414f4d7c732b38e1473f25ec785a041d053a0cf6a8f97007130aabfe380bef2cad95a0d6c432531e46c5207b3cef2a28ba5589433bfa78647d7b4a5075a2d6408ca19c926a16ae797368e3a1ec1a75d6799a83a5c4fe1d820f9a651e1754f9771833b5363a24121015cb1a686049ef314b6ed841b9dcf0f047defcaa31947ea42195af1f1aa5db609b82c47c5a9573137cc04f129be9a0a5c30c01607d39c275396dd6555ceaa8e3d5a53bab21204ba8e404de6886c178cef85d97ff28abe433aaf8075b15af4a3ad65a7cdd7d099158a5845e0c5c4f0342f53e653517eed5f33957db2ef312e841eb745f5affe69619222fb70ff9f2b7526f63b3bd930b7aa7113a9aead2e4e226f67b00262a2838c995f16f3df245d3b012f7673110b064c622afac05e68178f509362f440996fc704a63cb3ece1a49f7a9c9c9d690f"
+ // );
+ // }
}
Why this scored 12/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.