examples: add compatibility example for Groth16 veification
Port the C# contract provided in the https://github.com/neo-project/neo/issues/2647#issuecomment-1129849870 and add an integration test for it. Part of the #3002. Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
This commit is contained in:
parent
4598f3d3c2
commit
0a3260c22c
8 changed files with 135 additions and 0 deletions
|
@ -231,6 +231,8 @@ func scalarFromBytes(bytes []byte, neg bool) (*fr.Element, error) {
|
|||
}
|
||||
// The input bytes are in the LE form, so we can't use fr.Element.SetBytesCanonical as far
|
||||
// as it accepts BE.
|
||||
// TODO: ensure that LE is really used in the C# node. More common way is to use BE form, and these
|
||||
// lines of code are here only because that's the way how C# example works (https://github.com/neo-project/neo/issues/2647#issuecomment-1129849870).
|
||||
v, err := fr.LittleEndian.Element((*[fr.Bytes]byte)(bytes))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("invalid multiplier: failed to decode scalar: %w", err)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue