diem / diem/move

[Bug] Inconsistency between `Move.toml` and source code addresses

Open
#141 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Rust
Stars
378
Forks
137
PR merge metrics
No merged PRs in 30d

Description

# 🐛 Bug

Addresses parsing in the `Move.toml` performed by the https://github.com/diem/move/blob/main/language/tools/move-package/src/source_package/manifest_parser.rs#L278 and allows addresses in the form of
```toml
A1 = "0xefff111" # with prefix
A2 = "efffefffefffefffefff" # without prefix
```
On the other hand, in Move source code, parsing is performed by the https://github.com/diem/move/blob/main/language/move-compiler/src/shared/mod.rs#L67 and allows for the
```rust
let a = @0xAAFFEE; // hex with 0x prefix
let b = @111222; // decimal without any prefix
```

It all basically means that
```rust
// Move.toml
HelloBlockchain = "11111111111111111111111111111111"
// main.move
assert!(@HelloBlockchain == @11111111111111111111111111111111, 1);
```
fails with assert, as those address values are of different bases.

Is this intentional?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.