(bits: u32)
| 295 | } |
| 296 | |
| 297 | pub fn bits_to_target(bits: u32) -> [u8; 32] { |
| 298 | let size = (bits >> 24) as usize; |
| 299 | let mantissa = bits & 0x00ffffff; |
| 300 | |
| 301 | let target = if size <= 3 { |
| 302 | U256::from(mantissa >> (8 * (3 - size))) |
| 303 | } else { |
| 304 | U256::from(mantissa) << (8 * (size - 3)) |
| 305 | }; |
| 306 | // println!("Output: {:?}", target.to_be_bytes()); |
| 307 | target.to_be_bytes() |
| 308 | } |
| 309 | |
| 310 | fn target_to_bits(target: &[u8; 32]) -> u32 { |
| 311 | let target_u256 = U256::from_be_slice(target); |
no outgoing calls