@vocdoni/davinci-contracts
Version:
Smart contracts powering DAVINCI's digital voting protocol
181 lines (180 loc) • 21.9 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 = "0x6080604052348015600f57600080fd5b5061216f8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063233ace111461005c5780635d26278e1461008f57806360e58346146100a4578063b1c3a00e146100b7578063b8e72af6146100d9575b600080fd5b6040517f36e61ffb210981b919ce133f231cb1bbc4121b5c77eae0bc00deb3e3ff20fbad81526020015b60405180910390f35b6100a261009d366004611bee565b6100ec565b005b6100a26100b2366004611c6b565b61062a565b6100ca6100c5366004611cbc565b610aa3565b60405161008693929190611d05565b6100a26100e7366004611db1565b610b2c565b6100f4611b25565b6100fc611b43565b610104611b61565b6101158660005b6020020135610bad565b6020840152825260008061012887610bad565b855160208088015160405194965092945060609360008051602061211a8339815191529361015b93929091869101611e38565b6040516020818303038152906040528051906020012060001c61017e9190611e91565b865284518452602085810151858201527f27a5eba62ddd917183c2ee7b5d3e5f2ae1911937483496eaf222dc04d92c8c346040808701919091527f1b7f7d6f3f18a93f25a0fb477f635935c927ac97e6d6f3d28f59d1ca8922c79160608701527f099d0e57c9ab8b9c7b621e5016d21fb0c8ef3b0f6f95dff5136247407962696460808701527f18200ad5c851afdb5e84cc6f383913dfcb659ff333e3ad7239607f7e7731484c60a087015260c0860185905260e086018490527f1d31c618f9e86ac86138dfbb95e70ce4651b545dc20bf7e6c617d0a1171943356101008701527f02ec63033163c24b1aac46ec37b26f226045ab3c294e5d8b8c1e9b02fbcbda956101208701527f28fa21cf73b16a80472d7e28c1bf0c223b521618d6dfc76e0f3ccda55c3b8e406101408701527f26c26daec204c9b77f3dadba4e5e09e0844a31df991db1d6345783feb293c95b61016087015251600091816101808860085afa905116905080610304576040516351d49ff760e11b815260040160405180910390fd5b505050506000806103218960006004811061010b5761010b611e22565b9092509050600080808061033d60408e013560208f0135610c53565b929650909450925090506000806103558f600361010b565b915091506000806103678e8e8e610e39565b8b8d5260208d018b905260408d0189905260608d018a905260808d0187905260a08d0188905260c08d0186905260e08d018590527f1fec464abb83dd30b44a71beccc4499c0247e202d9a43aab3d617b852463d3ab6101008e01527f0fb4141443f49c5fcdf2e23cf88b3511927f1caee78fcad99c48483b725f3adc6101208e01527f175a61f1773d0cca59cbf4190569d38ba79a8961fb38765249a0e7dd74b54f186101408e01527e852c023aa389d861eb351e217144324f7011b9132ebae7c75df0d1da1358d46101608e01527f18a8e9c254a914e0af96e172307c53e1fa457682abbad8da3536421a04fd3a9c6101808e01527f14b33680c9e7a9c4ad3a174c25f271df7e7fc24a3b0b496e399df83d383209116101a08e01527f1d7dbb0e8748f54fcf3bf41a79a5a89bf0d8c68dd2d3c0baa107f0c0a0ad6a516101c08e01527f25564f26f751a891f47cfeaffdc425675a885cc237f51cf83b377b97339939e76101e08e01527f12cc848b8e33a48ed362877d3327335b12dd2c6edbd76367fc8111e2beed88906102008e01527f1923f402e67fd90a5b302a33e6927e714a37ea7c3e49158562857d0a5c28dbe16102208e01526102408d018290526102608d018190527f1c0a805d8260e5a380380e557f0fe651691e824bc1af7554288cf32c12c654706102808e01527f03854c5c1ddd2703c65567042076e97c47438001e30af5aaef11f167c2972d2e6102a08e01527f1f15049a161780694dcf5b7b2d435c7773c7dd79a4a155b70c54934f376982c46102c08e01527f1e012de79da3d630e18c086efafb08ac206f9051a89fa16294c72a25f572321d6102e08e0152909250905060006105db611b25565b6020816103008f60085afa91508115806105f757508051600114155b1561061557604051631ff3747d60e21b815260040160405180910390fd5b50505050505050505050505050505050505050565b610632611b25565b60405160609060008051602061211a8339815191529061065e908735906020808a013591869101611e38565b6040516020818303038152906040528051906020012060001c6106819190611e91565b8252604080516000918782377f27a5eba62ddd917183c2ee7b5d3e5f2ae1911937483496eaf222dc04d92c8c3460408201527f1b7f7d6f3f18a93f25a0fb477f635935c927ac97e6d6f3d28f59d1ca8922c79160608201527f099d0e57c9ab8b9c7b621e5016d21fb0c8ef3b0f6f95dff5136247407962696460808201527f18200ad5c851afdb5e84cc6f383913dfcb659ff333e3ad7239607f7e7731484c60a082015260408660c08301377f1d31c618f9e86ac86138dfbb95e70ce4651b545dc20bf7e6c617d0a1171943356101008201527f02ec63033163c24b1aac46ec37b26f226045ab3c294e5d8b8c1e9b02fbcbda956101208201527f28fa21cf73b16a80472d7e28c1bf0c223b521618d6dfc76e0f3ccda55c3b8e406101408201527f26c26daec204c9b77f3dadba4e5e09e0844a31df991db1d6345783feb293c95b6101608201526020816101808360085afa9051169050806107f7576040516351d49ff760e11b815260040160405180910390fd5b60008061082e86868a6002806020026040519081016040528092919082600260200280828437600092019190915250610e39915050565b915091506040516101008a82377f1fec464abb83dd30b44a71beccc4499c0247e202d9a43aab3d617b852463d3ab6101008201527f0fb4141443f49c5fcdf2e23cf88b3511927f1caee78fcad99c48483b725f3adc6101208201527f175a61f1773d0cca59cbf4190569d38ba79a8961fb38765249a0e7dd74b54f186101408201527e852c023aa389d861eb351e217144324f7011b9132ebae7c75df0d1da1358d46101608201527f18a8e9c254a914e0af96e172307c53e1fa457682abbad8da3536421a04fd3a9c6101808201527f14b33680c9e7a9c4ad3a174c25f271df7e7fc24a3b0b496e399df83d383209116101a08201527f1d7dbb0e8748f54fcf3bf41a79a5a89bf0d8c68dd2d3c0baa107f0c0a0ad6a516101c08201527f25564f26f751a891f47cfeaffdc425675a885cc237f51cf83b377b97339939e76101e08201527f12cc848b8e33a48ed362877d3327335b12dd2c6edbd76367fc8111e2beed88906102008201527f1923f402e67fd90a5b302a33e6927e714a37ea7c3e49158562857d0a5c28dbe161022082015282610240820152816102608201527f1c0a805d8260e5a380380e557f0fe651691e824bc1af7554288cf32c12c654706102808201527f03854c5c1ddd2703c65567042076e97c47438001e30af5aaef11f167c2972d2e6102a08201527f1f15049a161780694dcf5b7b2d435c7773c7dd79a4a155b70c54934f376982c46102c08201527f1e012de79da3d630e18c086efafb08ac206f9051a89fa16294c72a25f572321d6102e08201526020816103008360085afa905116925082610a9857604051631ff3747d60e21b815260040160405180910390fd5b505050505050505050565b610aab611b80565b610ab3611b25565b6000610ac886358760015b6020020135611423565b8352610ae66060870135604088013560a089013560808a0135611518565b60208501526040840152610b0060c0870135876007610abe565b6060840152610b128535866001610abe565b8252610b218435856001610abe565b905093509350939050565b6000806000610b3b878761180f565b91945092509050306360e58346848484610b558a8a611840565b6040518563ffffffff1660e01b8152600401610b749493929190611edc565b60006040518083038186803b158015610b8c57600080fd5b505afa158015610ba0573d6000803e3d6000fd5b5050505050505050505050565b60008082600003610bc357506000928392509050565b600183811c9250808416146000805160206120fa8339815191528310610bfc57604051631ff3747d60e21b815260040160405180910390fd5b610c396000805160206120fa83398151915260036000805160206120fa833981519152866000805160206120fa833981519152888909090861185b565b91508015610c4d57610c4a826118bf565b91505b50915091565b600080808085158015610c64575084155b15610c7a57506000925082915081905080610e30565b600286811c945085935060018088161490808816146000805160206120fa83398151915286101580610cba57506000805160206120fa8339815191528510155b15610cd857604051631ff3747d60e21b815260040160405180910390fd5b60006000805160206120fa833981519152610d0260036000805160206120fa833981519152611f58565b6000805160206120fa833981519152888a0909905060006000805160206120fa833981519152886000805160206120fa8339815191528a8b0909905060006000805160206120fa833981519152886000805160206120fa8339815191528a8b090990506000805160206120fa833981519152806000805160206120fa8339815191528a860984087f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e5089650610dfb6000805160206120fa833981519152806000805160206120fa8339815191528c870984087f2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e775086118bf565b9550610e088787866118d8565b90975095508415610e2a57610e1c876118bf565b9650610e27866118bf565b95505b50505050505b92959194509250565b6000806000600190506040516040810160007f100dc3f438602ee21fc4bb4bc22e585296b6d8b1d14f197f1cefa0ec0bb92b0983527f0939f38102390927104842a5dcf01fd21210e6cb374296a5b09f96774f7b21e36020840152865182526020870151602083015260408360808560065afa841693507f199d24b5bce3add74f73c00023c1301a4ce81e6c3312ce0bf054f073f813499082527f1c8ac7d946b5934fdac634defb8b787012b4c2371454217d265fc646908f0aab60208301528835905080604083015260008051602061211a83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f1b0d0121b1cfdf82d89075e60810b8c9e3d4c95a2d4474b6ec34b122aa856bd482527f2545cbdc14275e0e493aa7ef3b15dfb9b99fd207e46a920cd25bedf0f9d3e80d60208301526020890135905080604083015260008051602061211a83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f27e095a90556ce4a41d63be0986980298a422c722f671ac3f84d63f560cab11a82527f017266635599543298000f1d4c54b91e8a1cdfd5060e1406309eadf35654500460208301526040890135905080604083015260008051602061211a83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f2ecc1f3329b05b687b9bf6d3bc647bfa31aaffafeb1ec2c725204c84cd38fd0782527f1a8aa5d0c8d389e389d6c90ae9c772319d6801bd7f7cb72b766779e7189d373660208301526060890135905080604083015260008051602061211a83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f137d653660a1437d814021af3b7b0824db53440fefc83c16e7f8b49b85dba55482527f0809eba11f3c5fc6f857c1cade53bd50bdb97a62c465c0425433769a2666821660208301526080890135905080604083015260008051602061211a83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f27ba9ca193a1911271d13481dfcdbdf930d82cda691c95a938178f5e5a7f256d82527f0bfee36542227d3747ae16de5cf0dd592822faefc6baa3d950f8045b54623fa9602083015260a0890135905080604083015260008051602061211a83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f2b1d4e765f6cfd5ad4cccba5878fa9cb5451a0db46eb7df0a0d0221f15f504c382527f09cc9d6ab913ab2d48a26e4d1b15f4d6fc01f3ab78921f6fb115f01eac8b9784602083015260c0890135905080604083015260008051602061211a83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f28d422b5edb71baf2ddad93ad9fb472b265e2fe1c1bff38308b74a0c66b24ba782527f1be40bf98efa5f7f88c7d0faf5f85825866e32bc4d3deae836823e7c96c13774602083015260e0890135905080604083015260008051602061211a83398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f2c525a7c09ee0a9287f0fa9b09cc55257b5d2a24a4846ec18c66dac84ac5143882527f237870ebc652956d03888a3a0ff425f8c836f87be597d83539a90e275e1249f46020830152610100890135905080604083015260008051602061211a83398151915281108416935060408260608460075afa8416935060408360808560065afa7f2fe405b1013bcc8899cd3081b2c57008d0a3dd740dd7afabc0fc94d59154d4d683527f1a95cad133704fac63f264baff2bb62d058f699231328cbc5c92f648f65575b760208401528851604080850182905260008051602061211a83398151915290911091909516169390508160608160075afa831692505060408160808360065afa8151602090920151919450909250168061141a5760405163a54f8e2760e01b815260040160405180910390fd5b50935093915050565b60006000805160206120fa8339815191528310158061145057506000805160206120fa8339815191528210155b1561146e57604051631ff3747d60e21b815260040160405180910390fd5b8215801561147a575081155b1561148757506000611512565b60006114c66000805160206120fa83398151915260036000805160206120fa833981519152876000805160206120fa833981519152898a09090861185b565b90508083036114db575050600182901b611512565b6114e4816118bf565b83036114f7575050600182811b17611512565b604051631ff3747d60e21b815260040160405180910390fd5b505b92915050565b6000806000805160206120fa8339815191528610158061154657506000805160206120fa8339815191528510155b8061155f57506000805160206120fa8339815191528410155b8061157857506000805160206120fa8339815191528310155b1561159657604051631ff3747d60e21b815260040160405180910390fd5b828486881717176000036115af57506000905080611806565b600080806000805160206120fa8339815191526115db60036000805160206120fa833981519152611f58565b6000805160206120fa8339815191528a8c0909905060006000805160206120fa8339815191528a6000805160206120fa8339815191528c8d0909905060006000805160206120fa8339815191528a6000805160206120fa8339815191528c8d090990506000805160206120fa833981519152806000805160206120fa8339815191528c860984087f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e50894506116d46000805160206120fa833981519152806000805160206120fa8339815191528e870984087f2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e775086118bf565b93505050506000806117256000805160206120fa833981519152806116fb576116fb611e7b565b6000805160206120fa8339815191528586096000805160206120fa8339815191528788090861185b565b90506117726000805160206120fa8339815191527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea46000805160206120fa83398151915284880809611a16565b159150506117818383836118d8565b9093509150868314801561179457508186145b156117be57806117a55760006117a8565b60025b60ff1660028a901b176000179450879350611802565b6117c7836118bf565b871480156117dc57506117d9826118bf565b86145b156114f757806117ed5760006117f0565b60025b60ff1660028a901b1760011794508793505b5050505b94509492505050565b611817611b9e565b61181f611b43565b611827611b43565b6118338486018661200e565b9250925092509250925092565b611848611bbd565b61185482840184612090565b9392505050565b6000611887827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52611a60565b9050816000805160206120fa833981519152828309146118ba57604051631ff3747d60e21b815260040160405180910390fd5b919050565b6000805160206120fa8339815191529081900681030690565b6000808061190a6000805160206120fa833981519152808788096000805160206120fa833981519152898a090861185b565b9050831561191e5761191b816118bf565b90505b6119696000805160206120fa8339815191527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea46000805160206120fa833981519152848a080961185b565b92506000805160206120fa8339815191526119956000805160206120fa83398151915260028609611ac5565b860991506000805160206120fa8339815191526119c26000805160206120fa8339815191528485096118bf565b6000805160206120fa83398151915285860908861415806119f857506000805160206120fa833981519152808385096002098514155b1561141a57604051631ff3747d60e21b815260040160405180910390fd5b600080611a43837f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52611a60565b9050826000805160206120fa833981519152828309149392505050565b60008060405160208152602080820152602060408201528460608201528360808201526000805160206120fa83398151915260a082015260208160c08360055afa9051925090508061151057604051631ff3747d60e21b815260040160405180910390fd5b6000611af1827f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd45611a60565b90506000805160206120fa8339815191528183096001146118ba57604051631ff3747d60e21b815260040160405180910390fd5b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b6040518061030001604052806018906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518061010001604052806008906020820280368337509192915050565b6040518061012001604052806009906020820280368337509192915050565b80610120810183101561151257600080fd5b6000806000806101e08587031215611c0557600080fd5b6080850186811115611c1657600080fd5b85945060a0860187811115611c2a57600080fd5b909350359150611c3d8660c08701611bdc565b905092959194509250565b80610100810183101561151257600080fd5b806040810183101561151257600080fd5b6000806000806102a08587031215611c8257600080fd5b611c8c8686611c48565b9350611c9c866101008701611c5a565b9250611cac866101408701611c5a565b9150611c3d866101808701611bdc565b60008060006101808486031215611cd257600080fd5b611cdc8585611c48565b9250611cec856101008601611c5a565b9150611cfc856101408601611c5a565b90509250925092565b60c08101818560005b6004811015611d2d578151835260209283019290910190600101611d0e565b505050608082018460005b6001811015611d57578151835260209283019290910190600101611d38565b5050508260a0830152949350505050565b60008083601f840112611d7a57600080fd5b50813567ffffffffffffffff811115611d9257600080fd5b602083019150836020828501011115611daa57600080fd5b9250929050565b60008060008060408587031215611dc757600080fd5b843567ffffffffffffffff811115611dde57600080fd5b611dea87828801611d68565b909550935050602085013567ffffffffffffffff811115611e0a57600080fd5b611e1687828801611d68565b95989497509550505050565b634e487b7160e01b600052603260045260246000fd5b83815282602082015260006040820183516020850160005b82811015611e6e578151845260209384019390910190600101611e50565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b600082611eae57634e487b7160e01b600052601260045260246000fd5b500690565b8060005b6002811015611ed6578151845260209384019390910190600101611eb7565b50505050565b6102a08101818660005b6008811015611f05578151835260209283019290910190600101611ee6565b505050611f16610100830186611eb3565b611f24610140830185611eb3565b61018082018360005b6009811015611f4c578151835260209283019290910190600101611f2d565b50505095945050505050565b8181038181111561151257634e487b7160e01b600052601160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611fb057634e487b7160e01b600052604160045260246000fd5b604052919050565b600082601f830112611fc957600080fd5b6000611fd56040611f79565b9050806040840185811115611fe957600080fd5b845b81811015612003578035835260209283019201611feb565b509195945050505050565b6000806000610180848603121561202457600080fd5b600085601f860112612034578081fd5b8061010061204181611f79565b925082915086018781111561205557600080fd5b865b8181101561206f578035845260209384019301612057565b5081955061207d8882611fb8565b9450505050611cfc856101408601611fb8565b600061012082840312156120a357600080fd5b600083601f8401126120b3578081fd5b806101206120c081611f79565b92508291508401858111156120d457600080fd5b845b818110156120ee5780358452602093840193016120d6565b50909594505050505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a2646970667358221220d38f8ff8a0b86f59aebcf7fe1e2c28b98f7631a354fe53b57c7a03718bfb7ddb64736f6c634300081c0033";
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;