From 788d050bbe0e642bb4c69f36ea425e5d53d7c461 Mon Sep 17 00:00:00 2001 From: j01tz <47043188+j01tz@users.noreply.github.com> Date: Wed, 27 May 2020 14:54:23 -0700 Subject: [PATCH] slatepack: Add WORDS_PER_LINE (#420) --- libwallet/src/slatepack/armor.rs | 13 +++++++------ libwallet/src/slatepack/packer.rs | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/libwallet/src/slatepack/armor.rs b/libwallet/src/slatepack/armor.rs index 30a7bb6f..9fd9756f 100644 --- a/libwallet/src/slatepack/armor.rs +++ b/libwallet/src/slatepack/armor.rs @@ -29,9 +29,10 @@ use std::str; use super::types::{Slatepack, SlatepackBin}; // Framing and formatting for slate armor -pub static HEADER: &str = "BEGINSLATEPACK. "; +pub static HEADER: &str = "BEGINSLATEPACK."; static FOOTER: &str = ". ENDSLATEPACK."; const WORD_LENGTH: usize = 15; +const WORDS_PER_LINE: usize = 200; lazy_static! { static ref HEADER_REGEX: Regex = @@ -96,12 +97,12 @@ impl SlatepackArmor { } /// Encode an armored slatepack - pub fn encode(slatepack: &Slatepack, num_cols: usize) -> Result { + pub fn encode(slatepack: &Slatepack) -> Result { let slatepack_bytes = byte_ser::to_bytes(&SlatepackBin(slatepack.clone())) .map_err(|_| ErrorKind::SlatepackSer)?; let encoded_slatepack = base58check(&slatepack_bytes)?; - let formatted_slatepack = format_slatepack(&encoded_slatepack, num_cols)?; - Ok(format!("{}{}{}\n", HEADER, formatted_slatepack, FOOTER)) + let formatted_slatepack = format_slatepack(&format!("{}{}", HEADER, encoded_slatepack))?; + Ok(format!("{}{}\n", formatted_slatepack, FOOTER)) } } @@ -154,13 +155,13 @@ fn base58check(slate: &[u8]) -> Result { } // Adds human readable formatting to the slate payload for armoring -fn format_slatepack(slatepack: &str, num_cols: usize) -> Result { +fn format_slatepack(slatepack: &str) -> Result { let formatter = slatepack .chars() .enumerate() .flat_map(|(i, c)| { if i != 0 && i % WORD_LENGTH == 0 { - if num_cols != 0 && i % (WORD_LENGTH * num_cols) == WORD_LENGTH * 2 { + if WORDS_PER_LINE != 0 && i % (WORD_LENGTH * WORDS_PER_LINE) == 0 { Some('\n') } else { Some(' ') diff --git a/libwallet/src/slatepack/packer.rs b/libwallet/src/slatepack/packer.rs index df59a4f8..ceff6fcf 100644 --- a/libwallet/src/slatepack/packer.rs +++ b/libwallet/src/slatepack/packer.rs @@ -104,7 +104,7 @@ impl<'a> Slatepacker<'a> { /// Armor a slatepack pub fn armor_slatepack(&self, slatepack: &Slatepack) -> Result { - SlatepackArmor::encode(&slatepack, 3) + SlatepackArmor::encode(&slatepack) } /// Return/upgrade slate from slatepack