@@ -589,6 +589,47 @@ mod tests {
589589 assert ! ( matches!( err, DepositError :: AddressValidationError ( _) ) ) ;
590590 }
591591
592+ #[ test]
593+ fn test_marshal_deposit_data_matches_fixture ( ) {
594+ let pub_key = hex:: decode (
595+ "80d0436ccacd2b263f5e9e7ebaa14015fe5c80d3e57dc7c37bcbda783895e3491019d3ed694ecbb49c8c80a0480c0392" ,
596+ )
597+ . unwrap ( ) ;
598+ let withdrawal_credentials =
599+ hex:: decode ( "02000000000000000000000005f9f73f74c205f2b9267c04296e3069767531fb" )
600+ . unwrap ( ) ;
601+ let signature = hex:: decode (
602+ "aed3c99949ab93622f2d1baaeb047d30cb33e744e1a8464eebe1a2a634f0f23529ce753c54035968e9f3f683bca02f6704c933ca9ff2b181897de4eb27b0b2568721fe625084d5cc9030be55ceb1bc573df61a8a67bad87d94187ee4d28fc36f" ,
603+ )
604+ . unwrap ( ) ;
605+
606+ let deposit_data = DepositData {
607+ pub_key : pub_key. as_slice ( ) . try_into ( ) . unwrap ( ) ,
608+ withdrawal_credentials : withdrawal_credentials. as_slice ( ) . try_into ( ) . unwrap ( ) ,
609+ amount : DEFAULT_DEPOSIT_AMOUNT ,
610+ signature : signature. as_slice ( ) . try_into ( ) . unwrap ( ) ,
611+ } ;
612+
613+ let bytes = marshal_deposit_data ( & [ deposit_data] , "goerli" ) . unwrap ( ) ;
614+ let value: serde_json:: Value = serde_json:: from_slice ( & bytes) . unwrap ( ) ;
615+
616+ let expected = serde_json:: json!( [
617+ {
618+ "pubkey" : "80d0436ccacd2b263f5e9e7ebaa14015fe5c80d3e57dc7c37bcbda783895e3491019d3ed694ecbb49c8c80a0480c0392" ,
619+ "withdrawal_credentials" : "02000000000000000000000005f9f73f74c205f2b9267c04296e3069767531fb" ,
620+ "amount" : 32000000000u64 ,
621+ "signature" : "aed3c99949ab93622f2d1baaeb047d30cb33e744e1a8464eebe1a2a634f0f23529ce753c54035968e9f3f683bca02f6704c933ca9ff2b181897de4eb27b0b2568721fe625084d5cc9030be55ceb1bc573df61a8a67bad87d94187ee4d28fc36f" ,
622+ "deposit_message_root" : "0ed9775278db27ab7ef0efeea0861750d1f0e917deecfe68398321468201f2f8" ,
623+ "deposit_data_root" : "10e0a77c03f4420198571cf957ce3cd7cc85ae310664c77ff9556eba18ec8689" ,
624+ "fork_version" : "00001020" ,
625+ "network_name" : "goerli" ,
626+ "deposit_cli_version" : DEPOSIT_CLI_VERSION ,
627+ }
628+ ] ) ;
629+
630+ assert_eq ! ( value, expected) ;
631+ }
632+
592633 #[ test]
593634 fn test_address_parsing_valid_checksum ( ) {
594635 // Valid EIP-55 checksummed address should pass
0 commit comments