I am trying to use this method to_affine (bn/mod.rs at master · zcash-hackworks/bn · GitHub) by calling
G1::one().to_affine() in my main file but getting an error of no method found although in their test, they are calling in exactly same way (bn/mod.rs at master · zcash-hackworks/bn · GitHub). How can I used those method in my own code?
Are you using the master branch or are you uisng
bn from from crates.io?
Ah wait, the
G1 exported from
bn is not the one you see in the
bn::groups module. You are using this wrapper struct wrapping
bn::groups::G1. The wrapper does not implement
to_affine, nor does it allow you access to the wrapped type. So the developers of
bn want to keep that functionality private to their crate.
Thanks for the info!!
I am using the bn crate. So, If I want to use it in my code, is there any way to do so??
Out of the box, no. My first step would be to ask the maintainers if they could expose the
to_affine functionality in their public interface. I assume there's a reason why it is private, but maybe they didn't consider your use-case and are willing to update the crate once you tell them about it.
As a temporary fix you could create a fork of the repository, make the
bn::groups module public and work with the types from that module directly. You can patch the
bn dependency in your
Cargo.toml with your fork.
Thank You so much! This was really helpful!!
This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.