| 855 | |
| 856 | #[test] |
| 857 | fn test_account_leaf_node_serialize() { |
| 858 | let node = Node::new_leaf( |
| 859 | &RawPath::from_nibbles(&[0xa, 0xb]), |
| 860 | &TrieValue::Account(Account::new( |
| 861 | 0, |
| 862 | U256::from_be_slice(&[4, 5, 6]), |
| 863 | EMPTY_ROOT_HASH, |
| 864 | KECCAK_EMPTY, |
| 865 | )), |
| 866 | ) |
| 867 | .expect("can create node"); |
| 868 | let bytes = node.serialize().unwrap(); |
| 869 | assert_eq!(bytes, hex!("0x0102ab8083040506")); |
| 870 | |
| 871 | let node = Node::new_leaf( |
| 872 | &RawPath::from_nibbles(&[0xa, 0xb, 0xc]), |
| 873 | &TrieValue::Account(Account::new( |
| 874 | 0, |
| 875 | U256::from_be_slice(&[4, 5, 6, 7]), |
| 876 | EMPTY_ROOT_HASH, |
| 877 | KECCAK_EMPTY, |
| 878 | )), |
| 879 | ) |
| 880 | .expect("can create node"); |
| 881 | let bytes = node.serialize().unwrap(); |
| 882 | assert_eq!(bytes, hex!("0x0103abc0808404050607")); |
| 883 | |
| 884 | let node = Node::new_leaf( |
| 885 | &RawPath::new(), |
| 886 | &TrieValue::Account(Account::new( |
| 887 | 0, |
| 888 | U256::from_be_slice(&[0xf, 0xf, 0xf, 0xf]), |
| 889 | EMPTY_ROOT_HASH, |
| 890 | b256!("0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"), |
| 891 | )), |
| 892 | ) |
| 893 | .expect("can create node"); |
| 894 | let bytes = node.serialize().unwrap(); |
| 895 | assert_eq!(bytes, hex!("0x410080840f0f0f0fdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef")); |
| 896 | |
| 897 | let mut node = Node::new_leaf( |
| 898 | &RawPath::new(), |
| 899 | &TrieValue::Account(Account::new( |
| 900 | 0, |
| 901 | U256::from_be_slice(&[0xf, 0xf, 0xf, 0xf]), |
| 902 | EMPTY_ROOT_HASH, |
| 903 | b256!("0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"), |
| 904 | )), |
| 905 | ) |
| 906 | .expect("can create node"); |
| 907 | node.set_child( |
| 908 | 0, |
| 909 | Pointer::new( |
| 910 | 42.into(), |
| 911 | RlpNode::word_rlp(&b256!( |
| 912 | "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" |
| 913 | )), |
| 914 | ), |