@vocdoni/davinci-contracts
Version:
Smart contracts powering DAVINCI's digital voting protocol
181 lines (180 loc) • 20.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResultsVerifierGroth16__factory = void 0;
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
const ethers_1 = require("ethers");
const _abi = [
{
inputs: [],
name: "CommitmentInvalid",
type: "error",
},
{
inputs: [],
name: "ProofInvalid",
type: "error",
},
{
inputs: [],
name: "PublicInputNotInField",
type: "error",
},
{
inputs: [
{
internalType: "uint256[8]",
name: "proof",
type: "uint256[8]",
},
{
internalType: "uint256[2]",
name: "commitments",
type: "uint256[2]",
},
{
internalType: "uint256[2]",
name: "commitmentPok",
type: "uint256[2]",
},
],
name: "compressProof",
outputs: [
{
internalType: "uint256[4]",
name: "compressed",
type: "uint256[4]",
},
{
internalType: "uint256[1]",
name: "compressedCommitments",
type: "uint256[1]",
},
{
internalType: "uint256",
name: "compressedCommitmentPok",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "provingKeyHash",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "uint256[4]",
name: "compressedProof",
type: "uint256[4]",
},
{
internalType: "uint256[1]",
name: "compressedCommitments",
type: "uint256[1]",
},
{
internalType: "uint256",
name: "compressedCommitmentPok",
type: "uint256",
},
{
internalType: "uint256[9]",
name: "input",
type: "uint256[9]",
},
],
name: "verifyCompressedProof",
outputs: [],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint256[8]",
name: "proof",
type: "uint256[8]",
},
{
internalType: "uint256[2]",
name: "commitments",
type: "uint256[2]",
},
{
internalType: "uint256[2]",
name: "commitmentPok",
type: "uint256[2]",
},
{
internalType: "uint256[9]",
name: "input",
type: "uint256[9]",
},
],
name: "verifyProof",
outputs: [],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes",
name: "_proof",
type: "bytes",
},
{
internalType: "bytes",
name: "_input",
type: "bytes",
},
],
name: "verifyProof",
outputs: [],
stateMutability: "view",
type: "function",
},
];
const _bytecode = "0x60808060405234601557611e77908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c908163233ace111461167a575080635d26278e14610c8b57806360e583461461037f578063b1c3a00e1461026e5763b8e72af614610055575f80fd5b346102365760403660031901126102365760043567ffffffffffffffff8111610236576100869036906004016116b2565b60243567ffffffffffffffff8111610236576100a69036906004016116b2565b61010093846040516100b882826116e0565b3690376040938480516100cb82826116e0565b3690378480516100db82826116e0565b3690378101610180828203126102365780601f8301121561023657845195610105610100886116e0565b8201868282116102365783905b82821061025e5750509061014061012c8261013394611bda565b9301611bda565b916101209081865161014582826116e0565b36903784019080858303126102365781601f860112156102365785519461016e610120876116e0565b8591810192831161023657905b82821061023a57505050303b15610236578351633072c1a360e11b8152945f600487015b6008821061022057505050906101bd6101c89261010487019061173a565b61014485019061173a565b5f61018484015b6009821061020a575050505f826102a481305afa90811561020157506101f3575080f35b6101ff91505f906116e0565b005b513d5f823e3d90fd5b60208060019285518152019301910190916101cf565b602080600192855181520193019101909161019f565b5f80fd5b813581526020918201910161017b565b634e487b7160e01b5f52604160045260245ffd5b8135815260209182019101610112565b3461023657610180366003190112610236573661010411610236573661014411610236573661018411610236576040516102a96080826116e0565b60803682376040519060206102be81846116e0565b803684376102d0602435600435611905565b82526102e660843560a4356044356064356119a6565b8284015260408301526102fd60e43560c435611905565b60608301526103126101243561010435611905565b83526103246101643561014435611905565b9060405192835f905b60048210610369575050506080830193905f945b600186106103545760c0858560a0820152f35b81806001928551815201930195019491610341565b825181529183019160019190910190830161032d565b34610236576102a036600319011261023657366101041161023657366101441161023657366101841161023657366102a4116102365760405160206103c481836116e0565b803683375f516020611e225f395f51905f5260405182810190610400816103f2610124356101043586611702565b03601f1981018352826116e0565b519020068252604051604061010482377f172c3e362bfc1afecab059fe679d62d2246ff3c8cdff450f2adab4e29b52a31a60408201527f2cdf0eb32b8e667e3b54cd693753143c519f1ec0922b6423a369ec2c47cbecef60608201527f07fd9462b1be79250fe5ffca01e9c248521ac3c8b9a9e709bbcd66090bd0ff0660808201527f0ebe52d54a79b0c3771c71162af705852f68d4944bbe66bae32d2a185cb838bf60a0820152604061014460c08301377f03867c5475573316407692566215d27737e3705019f2124c7fc9079b6bacb49b6101008201527f035feb7736c0c805f297d415d96ab7666d244a6017d6e5a463d6fbf4ed88d3756101208201527f0a5d2541bcff1aa943644704de4d88b082b5f95f5281613b8cb134064c8b6da56101408201527f080792be4e433707e52af0b02a3cfa8c376e32c23f0d20c9f0158b3cb6109ddb61016082015281816101808160085afa90511615610c7c5760408051929061057090846116e0565b61010482845b6101448310610c6c5750505060405190604082017f19511ed5aa28ca0fd09a297bbbd7380a1d71b3474d4dc3d9bd5851ad2dbea4f683525f516020611e225f395f51905f52604085808601977f148e2bad839edfb1aa8934d13a3b6741cdd8a8318184996b5712e6d38bcddce589528051855201519260608601938452818660808160065afa947f04b77b6db752d8f7292f408f0e7f8f1fec3681ff8dbfc3096e29599eb564b80e82527f236f80cf2754c17d05f4dd069e83d69a5209df133fea257347c312f1a314fd2b85527f0fa914b0ccdc16524cf0075ac3a50968828cd74aeff9cf70c068cd3f4a45a57860016101843560808a0198818a5287878760608160075afa92101616858a60808160065afa16167f2708598733abc207e29208498683acadc1b03ddf7b9006fa72ea910b24c1dfa284527e8daa8b57eef4e46e58bb51cd23a26093154f5cadd7301fe74e39f80c696a9d87526101a4359081895286868660608160075afa92101616848960808160065afa167f2f065d10a39f63bd855c1e46049c814d10d2411cad7f9be4e339c0d8fa34cd8284527f24e794f7b6586393a0db6ed37fb517d7bbaf758f0432aab2ae3a45eb2cf3983f87526101c4359081895286868660608160075afa92101616848960808160065afa167f293732cf3194b953aced12360a40cbbbf3ef1df30da324b3baa981b9bef42e3584527eb9f21b59cb56d83f1dc78c476ae2cb1f295e1a22d68d7aa85caf28dcdb5b5687526101e4359081895286868660608160075afa92101616848960808160065afa167f13fdf7d585de1b3563e5e288f47b0eba6ddb71b7e60967efb49cb1e8e2e4eb5384527f1a948b73ae2908668ad07d1e9d4c3413332ad1ae0bf57bafc3cdd9eb7649428c8752610204359081895286868660608160075afa92101616848960808160065afa167f2e122c8a3874c1fa1daf55576bd8a10706ba4fa711bcc04b87c541efc1c3890a84527f063b5c84b75526d53e1dfc098a3bd45a13e56c10ef8966cadcf3f76ab3a5330e8752610224359081895286868660608160075afa92101616848960808160065afa167f1a0b7d4956ec03d8e65c02b41910ab087c21c49291fbef1cd88a25e6355f09ff84527f0892d86e3f822b25a79767fec9500836fdcc7a2f5b003bad4e1c99c4f15400438752610244359081895286868660608160075afa92101616848960808160065afa167f20f06a7909c5dd899a7c9beb4a5632fc4a4781cea58f09c2fe2db1a707abfd1f84527f0e5ab3841d75f9ef8476f981e6514a815ed7a96510a3c3f23b198b7a8df8c3b68752610264359081895286868660608160075afa92101616848960808160065afa167f2f693f13f14a5eca92842b74f4d09b0f7556c3c804857eb54fdd9ef27956459784527f010b93640015c1fab3f6e1c4079af2898b07e7080bf79846074c7cfc346b3d7b8752610284359081895286868660608160075afa92101616848960808160065afa16957f1a1ac847da604829deaf42be3f2d230b50bf353ed61d79fc737fae6c7da462b78452525180955260608160075afa9210161660408260808160065afa16905192519015610c5d5760405192610100600485377f1b9f98183462d71dd5b551db2c9261f103deea2a7654e2ea2bc6e622ba2206b36101008501527f1ca95574159406b016233d120a9de8471ffef954fa8220f353710d52530c26286101208501527f2691eb52fa7a64b9dcfdfb8bd8075842a114b74483241915e165d031d10448886101408501527f2446c63acb0ad28651766998b23948674a73a4fe810e29f4a12548424606df996101608501527f029c1540050458afd4980b9ee3f3a6d6f9506f06e8dd5439f816c45a2b7078326101808501527f29770afbc654db88056ad99cd81c0820f36f50e85da462266a664d7467f74f0d6101a08501527f262ffc210c2063aafc30aff32a3c8666aaf2f8531994de21fe13121d0a58c7796101c08501527f1ec0be4950a60c5203434758ecc00d919445fa972e2347c2cd7f75c96a0ef60b6101e08501527f22f62b73fdbbea38bc14ff99da426f67cb2b89c62632dc06326f440ee369ed216102008501527f244ae49435ab86d3b0311e041ed5c0b6d6e85b1ec3490ef47c72653546049c796102208501526102408401526102608301527f2a91fdf2995dfdb5e11046caf823649fdd69c837fad41ce18d14c08d6ef5bdaf6102808301527f2b5c7fa0384071eb986970df316dda9931f52b19fd51ff3554b434cb638233d16102a08301527f1e7806f868f01a607cbee68be533bf9f2075b2fc92efbf3fa2077787a3182e7f6102c08301527f211d3a7f00cc8174311aad632910f288282284b588172cd72aa7e475f7931f266102e0830152816103008160085afa90511615610c4e57005b631ff3747d60e21b5f5260045ffd5b63a54f8e2760e01b5f5260045ffd5b8235815291810191849101610576565b6351d49ff760e11b5f5260045ffd5b34610236576101e03660031901126102365736608411610236573660a41161023657366101e411610236576040516020610cc581836116e0565b803683376040805190610cd881836116e0565b8036833761030093815192610ced86856116e0565b85368537610cfc608435611761565b868301528152610d0d60a435611761565b905f516020611e225f395f51905f5283516103f2610d378a87015189519283918d83019586611702565b5190200684528251865286830151878701527f172c3e362bfc1afecab059fe679d62d2246ff3c8cdff450f2adab4e29b52a31a858701527f2cdf0eb32b8e667e3b54cd693753143c519f1ec0922b6423a369ec2c47cbecef60608701527f07fd9462b1be79250fe5ffca01e9c248521ac3c8b9a9e709bbcd66090bd0ff0660808701527f0ebe52d54a79b0c3771c71162af705852f68d4944bbe66bae32d2a185cb838bf60a087015260c086015260e08501527f03867c5475573316407692566215d27737e3705019f2124c7fc9079b6bacb49b6101008501527f035feb7736c0c805f297d415d96ab7666d244a6017d6e5a463d6fbf4ed88d3756101208501527f0a5d2541bcff1aa943644704de4d88b082b5f95f5281613b8cb134064c8b6da56101408501527f080792be4e433707e52af0b02a3cfa8c376e32c23f0d20c9f0158b3cb6109ddb610160850152825185816101808760085afa90511615610c7c578490610ea7600435611761565b610eb86024959295356044356117cc565b9291909389610ec8606435611761565b9890977f0fa914b0ccdc16524cf0075ac3a50968828cd74aeff9cf70c068cd3f4a45a57883519b8c937f19511ed5aa28ca0fd09a297bbbd7380a1d71b3474d4dc3d9bd5851ad2dbea4f685527f148e2bad839edfb1aa8934d13a3b6741cdd8a8318184996b5712e6d38bcddce5828601528051868601520151606084019081527f1a1ac847da604829deaf42be3f2d230b50bf353ed61d79fc737fae6c7da462b7858560808160065afa957f04b77b6db752d8f7292f408f0e7f8f1fec3681ff8dbfc3096e29599eb564b80e818701527f236f80cf2754c17d05f4dd069e83d69a5209df133fea257347c312f1a314fd2b8352600160c4356080880198818a525f516020611e225f395f51905f5284808b016060828d0160075afa92101616828860808160065afa16167f2708598733abc207e29208498683acadc1b03ddf7b9006fa72ea910b24c1dfa2828801527e8daa8b57eef4e46e58bb51cd23a26093154f5cadd7301fe74e39f80c696a9d845260e435908189525f516020611e225f395f51905f5283808a016060828c0160075afa92101616818760808160065afa167f2f065d10a39f63bd855c1e46049c814d10d2411cad7f9be4e339c0d8fa34cd82828801527f24e794f7b6586393a0db6ed37fb517d7bbaf758f0432aab2ae3a45eb2cf3983f845261010435908189525f516020611e225f395f51905f5283808a016060828c0160075afa92101616818760808160065afa167f293732cf3194b953aced12360a40cbbbf3ef1df30da324b3baa981b9bef42e35828801527eb9f21b59cb56d83f1dc78c476ae2cb1f295e1a22d68d7aa85caf28dcdb5b56845261012435908189525f516020611e225f395f51905f5283808a016060828c0160075afa92101616818760808160065afa167f13fdf7d585de1b3563e5e288f47b0eba6ddb71b7e60967efb49cb1e8e2e4eb53828801527f1a948b73ae2908668ad07d1e9d4c3413332ad1ae0bf57bafc3cdd9eb7649428c845261014435908189525f516020611e225f395f51905f5283808a016060828c0160075afa92101616818760808160065afa167f2e122c8a3874c1fa1daf55576bd8a10706ba4fa711bcc04b87c541efc1c3890a828801527f063b5c84b75526d53e1dfc098a3bd45a13e56c10ef8966cadcf3f76ab3a5330e845261016435908189525f516020611e225f395f51905f5283808a016060828c0160075afa92101616818760808160065afa167f1a0b7d4956ec03d8e65c02b41910ab087c21c49291fbef1cd88a25e6355f09ff828801527f0892d86e3f822b25a79767fec9500836fdcc7a2f5b003bad4e1c99c4f1540043845261018435908189525f516020611e225f395f51905f5283808a016060828c0160075afa92101616818760808160065afa167f20f06a7909c5dd899a7c9beb4a5632fc4a4781cea58f09c2fe2db1a707abfd1f828801527f0e5ab3841d75f9ef8476f981e6514a815ed7a96510a3c3f23b198b7a8df8c3b684526101a435908189525f516020611e225f395f51905f5283808a016060828c0160075afa92101616818760808160065afa167f2f693f13f14a5eca92842b74f4d09b0f7556c3c804857eb54fdd9ef279564597828801527f010b93640015c1fab3f6e1c4079af2898b07e7080bf79846074c7cfc346b3d7b84526101c435908189525f516020611e225f395f51905f5283808a016060828c0160075afa92101616818760808160065afa1695015252518092525f516020611e225f395f51905f528c8b606082808301920160075afa921016168a8960808160065afa16988c89519901519915610c5d578b528b8b0152888a01526060890152608088015260a087015260c086015260e08501527f1b9f98183462d71dd5b551db2c9261f103deea2a7654e2ea2bc6e622ba2206b36101008501527f1ca95574159406b016233d120a9de8471ffef954fa8220f353710d52530c26286101208501527f2691eb52fa7a64b9dcfdfb8bd8075842a114b74483241915e165d031d10448886101408501527f2446c63acb0ad28651766998b23948674a73a4fe810e29f4a12548424606df996101608501527f029c1540050458afd4980b9ee3f3a6d6f9506f06e8dd5439f816c45a2b7078326101808501527f29770afbc654db88056ad99cd81c0820f36f50e85da462266a664d7467f74f0d6101a08501527f262ffc210c2063aafc30aff32a3c8666aaf2f8531994de21fe13121d0a58c7796101c08501527f1ec0be4950a60c5203434758ecc00d919445fa972e2347c2cd7f75c96a0ef60b6101e08501527f22f62b73fdbbea38bc14ff99da426f67cb2b89c62632dc06326f440ee369ed216102008501527f244ae49435ab86d3b0311e041ed5c0b6d6e85b1ec3490ef47c72653546049c796102208501526102408401526102608301527f2a91fdf2995dfdb5e11046caf823649fdd69c837fad41ce18d14c08d6ef5bdaf6102808301527f2b5c7fa0384071eb986970df316dda9931f52b19fd51ff3554b434cb638233d16102a08301527f1e7806f868f01a607cbee68be533bf9f2075b2fc92efbf3fa2077787a3182e7f6102c08301527f211d3a7f00cc8174311aad632910f288282284b588172cd72aa7e475f7931f266102e08301525192839161165584846116e0565b8336843760085afa1590811561166d575b50610c4e57005b6001915051141581611666565b34610236575f36600319011261023657807f448592882f39f7e5ef17ad70cdee5a23f95b1337ec72ae1ac36266a306cc6bea60209252f35b9181601f840112156102365782359167ffffffffffffffff8311610236576020838186019501011161023657565b90601f8019910116810190811067ffffffffffffffff82111761024a57604052565b909160409282526020820152016060516080905f5b8181106117245750505090565b8251845260209384019390920191600101611717565b905f905b6002821061174b57505050565b602080600192855181520193019101909161173e565b80156117c5578060011c915f516020611e025f395f51905f52831015610c4e576001806117a45f516020611e025f395f51905f5260038188818180090908611c22565b9316146117ad57565b905f516020611e025f395f51905f5280910681030690565b505f905f90565b8015806118fd575b6118f1578060021c92825f516020611e025f395f51905f5285108015906118da575b610c4e5784815f516020611e025f395f51905f5280808080808080807f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd44816118a49d8d0909998a0981898181800909087f2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e7750806810306936002808a16149509818a8181800909087f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e508611c45565b809291600180829616146118b6575050565b5f516020611e025f395f51905f528093945080929550809106810306930681030690565b505f516020611e025f395f51905f528110156117f6565b50505f905f905f905f90565b5081156117d4565b905f516020611e025f395f51905f52821080159061198f575b610c4e57811580611987575b6119815761194e5f516020611e025f395f51905f5260038185818180090908611c22565b81810361195d57505060011b90565b5f516020611e025f395f51905f52809106810306145f14610c4e57600190811b1790565b50505f90565b50801561192a565b505f516020611e025f395f51905f5281101561191e565b919093925f516020611e025f395f51905f528310801590611bc3575b8015611bac575b8015611b95575b610c4e578082868517171715611b8a57908291611aed5f516020611e025f395f51905f5280808080888180808f9d7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd448f839290839109099d8e0981848181800909087f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e5089a09818c8181800909087f2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e7750806810306945f516020611e025f395f51905f527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea481611ac781808b80098187800908611c22565b8408095f516020611e025f395f51905f52611ae182611d99565b80091415958691611c45565b929080821480611b81575b15611b1f5750505050905f14611b175760ff60025b169060021b179190565b60ff5f611b0d565b5f516020611e025f395f51905f52809106810306149182611b62575b505015610c4e5760019115611b5a5760ff60025b169060021b17179190565b60ff5f611b4f565b5f516020611e025f395f51905f52919250819006810306145f80611b3b565b50838314611af8565b50505090505f905f90565b505f516020611e025f395f51905f528110156119d0565b505f516020611e025f395f51905f528210156119c9565b505f516020611e025f395f51905f528510156119c2565b9080601f8301121561023657604080519290611bf690846116e0565b82906040810192831161023657905b828210611c125750505090565b8135815260209182019101611c05565b90611c2c82611d99565b915f516020611e025f395f51905f5283800903610c4e57565b915f516020611e025f395f51905f527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea481611c9d93969496611c8f82808a8009818a800908611c22565b90611d8d575b860809611c22565b925f516020611e025f395f51905f52600285096040519060208252602080830152602060408301528060608301527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4560808301525f516020611e025f395f51905f5260a083015260208260c08160055afa91519115610c4e575f516020611e025f395f51905f52826001920903610c4e575f516020611e025f395f51905f52908209925f516020611e025f395f51905f528080808780090681030681878009081490811591611d6e575b50610c4e57565b90505f516020611e025f395f51905f528084860960020914155f611d67565b81809106810306611c95565b9060405191602083526020808401526020604084015260608301527f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f5260808301525f516020611e025f395f51905f5260a083015260208260c08160055afa91519115610c4e5756fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220ee00a25480c8271f257cc08fbd30b34f1236c7542192d02740cc4365d5014d9d64736f6c634300081c0033";
const isSuperArgs = (xs) => xs.length > 1;
class ResultsVerifierGroth16__factory extends ethers_1.ContractFactory {
constructor(...args) {
if (isSuperArgs(args)) {
super(...args);
}
else {
super(_abi, _bytecode, args[0]);
}
}
getDeployTransaction(overrides) {
return super.getDeployTransaction(overrides || {});
}
deploy(overrides) {
return super.deploy(overrides || {});
}
connect(runner) {
return super.connect(runner);
}
static createInterface() {
return new ethers_1.Interface(_abi);
}
static connect(address, runner) {
return new ethers_1.Contract(address, _abi, runner);
}
}
exports.ResultsVerifierGroth16__factory = ResultsVerifierGroth16__factory;
ResultsVerifierGroth16__factory.bytecode = _bytecode;
ResultsVerifierGroth16__factory.abi = _abi;