| 294 | let left_hash = hasher.finalize(); |
| 295 | |
| 296 | // Hash amount with padding |
| 297 | let mut right = Vec::with_capacity(64); |
| 298 | right.extend_from_slice(&self.amount.to_le_bytes()); |
| 299 | right.extend_from_slice(&[0; 56]); |
| 300 | let mut hasher = Sha256::default(); |
| 301 | hasher.update(&right); |
| 302 | let right_hash = hasher.finalize(); |
| 303 | |
| 304 | // Combine left and right |
| 305 | let mut hasher = Sha256::default(); |
| 306 | hasher.update(&left_hash); |
| 307 | hasher.update(&right_hash); |
| 308 | let root_hash = hasher.finalize(); |
| 309 | |
| 310 | // Final hash with domain |
| 311 | let mut hasher = Sha256::default(); |
| 312 | hasher.update(&root_hash); |
| 313 | hasher.update(&domain); |
| 314 | hasher.finalize() |