Open PaulRBerg opened 1 year ago
As you've noticed, Address
is a type alias for H160
, which is a type constructed by the fixed-hash
crate. This crate was written in the pre-const times, where the amount of computation one could do in a const context was limited.
We still can't make H160::from
and H160::from_str
const, because the respective traits from std lib are not const.
We can however, add a separate const method to do a const construction.
A similar issue for uint
types is https://github.com/paritytech/parity-common/issues/585.
Using hex-literal crate.
H160(hex_literal::hex!("0298F4332e3857631385b39766325058a93e249f")
Hello! I want to define a global constant of type
Address
, but I just don't know how to do it, and I couldn't figure out a solution from the docs. I tried to do the following:But the compilation failed with this error:
I also tried to use the
from_str
function:But this didn't work either:
Is it even possible to do this, or must
Address
es always be defined as non-constants?I saw in your tests that you are hard-coding some addresses like this:
But I wonder if there is a less verbose way to do it, which doesn't involve passing an array of bytes to the
from
function? Ideally I would pass the address in full, as shown in the code snippets above.Side note: it might be worth it to enable discussions in this repo, so that users like me who don't want to report bugs or make feature requests can avoid spamming the issues channel with questions.