Skip to content

Commit

Permalink
crypto: Use bech32 for SuiAddress encoding
Browse files Browse the repository at this point in the history
  • Loading branch information
joyqvq committed Oct 31, 2022
1 parent f5679be commit a493a20
Show file tree
Hide file tree
Showing 16 changed files with 301 additions and 313 deletions.
8 changes: 8 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ move-bytecode-utils = { git = "https://github.com/move-language/move", rev = "1f
move-bytecode-verifier = { git = "https://github.com/move-language/move", rev = "1ffd0a3e7bdc4bba7dafb8c814279e750113d030" }
move-cli = { git = "https://github.com/move-language/move", rev = "1ffd0a3e7bdc4bba7dafb8c814279e750113d030" }
move-compiler = { git = "https://github.com/move-language/move", rev = "1ffd0a3e7bdc4bba7dafb8c814279e750113d030" }
move-core-types = { git = "https://github.com/move-language/move", rev = "1ffd0a3e7bdc4bba7dafb8c814279e750113d030", features = ["address20"] }
move-core-types = { git = "https://github.com/move-language/move", rev = "1ffd0a3e7bdc4bba7dafb8c814279e750113d030", features = ["address32"] }
move-disassembler = { git = "https://github.com/move-language/move", rev = "1ffd0a3e7bdc4bba7dafb8c814279e750113d030" }
move-package = { git = "https://github.com/move-language/move", rev = "1ffd0a3e7bdc4bba7dafb8c814279e750113d030" }
move-stdlib = { git = "https://github.com/move-language/move", rev = "1ffd0a3e7bdc4bba7dafb8c814279e750113d030" }
Expand Down
33 changes: 11 additions & 22 deletions crates/sui-json/src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ fn test_basic_args_linter_top_level() {
let monster_description_raw = "MonsterDescription";
let display_raw = "DisplayUrl";

let player_id = json!(format!("0x{:02x}", ObjectID::random()));
let player_id = json!(format!("{}", ObjectID::random()));
// This is okay since not starting with 0x
let monster_name = json!(monster_name_raw);
// Well within U64 bounds
Expand Down Expand Up @@ -408,8 +408,8 @@ fn test_basic_args_linter_top_level() {
let address = SuiAddress::random_for_testing_only();

let value = json!(value_raw);
// Encode as hex string
let addr = json!(format!("0x{:02x}", address));
// Encode as bech32 string
let addr = json!(format!("{}", address));

// They have to be ordered
let args = vec![value, addr]
Expand Down Expand Up @@ -443,9 +443,9 @@ fn test_basic_args_linter_top_level() {
let object_id_raw = ObjectID::random();
let address = SuiAddress::random_for_testing_only();

let object_id = json!(format!("0x{:02x}", object_id_raw));
// Encode as hex string
let addr = json!(format!("0x{:02x}", address));
let object_id = json!(format!("{}", object_id_raw));
// Encode as Bech32 string
let addr = json!(format!("{}", address));

// They have to be ordered
let args = vec![object_id, addr]
Expand All @@ -455,12 +455,7 @@ fn test_basic_args_linter_top_level() {

let args = resolve_move_function_args(framework_pkg, module, function, &[], args).unwrap();

assert_eq!(
args[0],
SuiJsonCallArg::Object(
ObjectID::from_hex_literal(&format!("0x{:02x}", object_id_raw)).unwrap()
)
);
assert_eq!(args[0], SuiJsonCallArg::Object(object_id_raw));

// Need to verify this specially
// BCS serialzes addresses like vectors so there's a length prefix, which makes the vec longer by 1
Expand All @@ -485,8 +480,8 @@ fn test_basic_args_linter_top_level() {
*/
let object_id_raw1 = ObjectID::random();
let object_id_raw2 = ObjectID::random();
let object_id1 = json!(format!("0x{:02x}", object_id_raw1));
let object_id2 = json!(format!("0x{:02x}", object_id_raw2));
let object_id1 = json!(format!("{}", object_id_raw1));
let object_id2 = json!(format!("{}", object_id_raw2));

let args = vec![SuiJsonValue::new(Value::Array(vec![object_id1, object_id2])).unwrap()];

Expand All @@ -496,14 +491,8 @@ fn test_basic_args_linter_top_level() {

if let SuiJsonCallArg::ObjVec(vec) = &args[0] {
assert_eq!(vec.len(), 2);
assert_eq!(
vec[0],
ObjectID::from_hex_literal(&format!("0x{:02x}", object_id_raw1)).unwrap()
);
assert_eq!(
vec[1],
ObjectID::from_hex_literal(&format!("0x{:02x}", object_id_raw2)).unwrap()
);
assert_eq!(vec[0], object_id_raw);
assert_eq!(vec[1], object_id_raw2);
}
}

Expand Down
2 changes: 1 addition & 1 deletion crates/sui-keys/tests/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ fn mnemonic_test() {
#[test]
fn sui_wallet_address_mnemonic_test() -> Result<(), anyhow::Error> {
let phrase = "result crisp session latin must fruit genuine question prevent start coconut brave speak student dismiss";
let expected_address = SuiAddress::from_str("0x1a4623343cd42be47d67314fce0ad042f3c82685")?;
let expected_address = SuiAddress::from_str("sui16xr5u5tya830w2szngx95tfav3jw56nhjhxwen")?;

let temp_dir = TempDir::new().unwrap();
let keystore_path = temp_dir.path().join("sui.keystore");
Expand Down
Loading

0 comments on commit a493a20

Please sign in to comment.