// Parameters are based on: https://github.com/HarryR/ethsnarks/tree/9cdf0117c2e42c691e75b98979cb29b099eca998/src/jubjub // Note: parameters will be updated soon to be more compatible with zCash's implementation def main() -> (field[10]): // Order of the curve E field JUBJUBE = 21888242871839275222246405745257275088614511777268538073601725287587578984328 field JUBJUBC = 8 // Cofactor field JUBJUBA = 168700 // Coefficient A field JUBJUBD = 168696 // Coefficient D field MONTA = 168698 // int(2*(JUBJUB_A+JUBJUB_D)/(JUBJUB_A-JUBJUB_D)) field MONTB = 1 // int(4/(JUBJUB_A-JUBJUB_D)) // Point at infinity field[2] infinity = [0, 1] // Generator field Gu = 16540640123574156134436876038791482806971768689494387082833631921987005038935 field Gv = 20819045374670962167435360035096875258406992893633759881276124905556507972311 // Index // 0 1 2 3 4 5 6 7 8 10 return [JUBJUBA, JUBJUBD, infinity[0], infinity[1], Gu, Gv, JUBJUBE, JUBJUBC, MONTA, MONTB]