Skip to content

Commit 72a7e09

Browse files
committed
test: add test marshal_deposit_data
1 parent 393b939 commit 72a7e09

2 files changed

Lines changed: 42 additions & 1 deletion

File tree

crates/charon-eth2/src/deposit/mod.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

crates/charon-eth2/src/deposit/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ pub struct DepositDataJson {
6969
/// Withdrawal credentials as hex string (without 0x prefix)
7070
pub withdrawal_credentials: String,
7171
/// Amount in Gwei
72-
pub amount: Gwei,
72+
pub amount: u64,
7373
/// Signature as hex string (without 0x prefix)
7474
pub signature: String,
7575
/// Deposit message root as hex string (without 0x prefix)

0 commit comments

Comments
 (0)