diff --git a/go-sdk/go.mod b/go-sdk/go.mod index cd1ad81..e40de85 100644 --- a/go-sdk/go.mod +++ b/go-sdk/go.mod @@ -32,8 +32,8 @@ require ( github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/term v0.24.0 // indirect - golang.org/x/text v0.18.0 // indirect + golang.org/x/term v0.25.0 // indirect + golang.org/x/text v0.19.0 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect ) @@ -46,8 +46,8 @@ require ( github.com/iden3/go-rapidsnark/types v0.0.2 // indirect github.com/iden3/go-rapidsnark/witness/v2 v2.0.0 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - golang.org/x/crypto v0.27.0 // indirect - golang.org/x/sys v0.25.0 // indirect + golang.org/x/crypto v0.28.0 // indirect + golang.org/x/sys v0.26.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/driver/postgres v1.5.9 gorm.io/driver/sqlite v1.5.6 diff --git a/go-sdk/go.sum b/go-sdk/go.sum index fd08e3c..596c7e2 100644 --- a/go-sdk/go.sum +++ b/go-sdk/go.sum @@ -90,6 +90,8 @@ github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJ github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= @@ -99,10 +101,16 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= +golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/solidity/contracts/lib/verifier_anon.sol b/solidity/contracts/lib/verifier_anon.sol index 47dc246..5877097 100644 --- a/solidity/contracts/lib/verifier_anon.sol +++ b/solidity/contracts/lib/verifier_anon.sol @@ -43,20 +43,20 @@ contract Groth16Verifier_Anon { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 3319550867918389158760504882166910322350814301529999793881219927624926812218; - uint256 constant IC0y = 8112223961732708620307943835229149349073269785468907951921031999005579432360; + uint256 constant IC0x = 5164307371815896911515696671738873844048257722050909867831835990637012101701; + uint256 constant IC0y = 12354927596117908346199755324136696518322064372058485349259909333082372370635; - uint256 constant IC1x = 15096629411914632277607546989315689233719395046718808409188927196068752404150; - uint256 constant IC1y = 10362984186384929304750673294926421618922019817172373369678893994019850088343; + uint256 constant IC1x = 20222371576460641197340148762590738473920678083533188719662074960764475697689; + uint256 constant IC1y = 7897001712913914338190514293992881005369467044069819357567910495239020142075; - uint256 constant IC2x = 20815066981450336832314867142721691503062320369984936892703152358416699839703; - uint256 constant IC2y = 1557645147102593228134281419019838535030988955617584297402100851233797935185; + uint256 constant IC2x = 1504125502076828772513804635767555623024057782300194162723850417077389521740; + uint256 constant IC2y = 858320369100031974724283697183785213773993091633560622385563288753711881155; - uint256 constant IC3x = 18849972338795474978690234885011750409362042163141639815802084633533672717587; - uint256 constant IC3y = 11592628208735263354121581365973913318820007731347818812301423349302617899582; + uint256 constant IC3x = 5493470858249230343108142412555674050720320624568365358155164359336581986287; + uint256 constant IC3y = 11317628322030591465286609049996565879526614862359528856821175025851564803769; - uint256 constant IC4x = 10387575294448289661300123614024155521733638164071044346711512029585672920273; - uint256 constant IC4y = 11497205022291710792060689976216697813796698175621592132942830938000465594885; + uint256 constant IC4x = 21434069923620544033418441313691498595963078701376702207210110500016155495561; + uint256 constant IC4y = 8164005755254962127084858831575606145119101801687857812612476525976966267935; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_batch.sol b/solidity/contracts/lib/verifier_anon_batch.sol index 559bbbb..9ed6e5b 100644 --- a/solidity/contracts/lib/verifier_anon_batch.sol +++ b/solidity/contracts/lib/verifier_anon_batch.sol @@ -43,68 +43,68 @@ contract Groth16Verifier_AnonBatch { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 3944445075228117821565047604309603820750410202018016930603758668358261843334; - uint256 constant IC0y = 19711951516505465677916699605008107163330091662763114395955513140341801084904; + uint256 constant IC0x = 5861890033538026212667750668572473120788004819983455742285567105342353828661; + uint256 constant IC0y = 14554943693784272414673670067771585529532330995100148763403115114448877035365; - uint256 constant IC1x = 10024224123696554332933959563789684919413349073272276892782203947930331299424; - uint256 constant IC1y = 20519109008487818648924793377164949144965439508556951350226813126173272972409; + uint256 constant IC1x = 4739729125948578143112487239601694156755949850082652619305531308271151884771; + uint256 constant IC1y = 17749371344655824264585964787550860034959402409108396453133976804583835130552; - uint256 constant IC2x = 1142173056187437846551638621853081194566151147956191754797065528924777141391; - uint256 constant IC2y = 16031000099246098401525163660770199821855637849160899105526656734827553900160; + uint256 constant IC2x = 14013416492351286258930685726812465840700541217811991086500109772059195611474; + uint256 constant IC2y = 17341037787926101776428292785405504332612709297224939583579473367142427226146; - uint256 constant IC3x = 7098793361958481515578594788921578408626331172533029034769487091259177553933; - uint256 constant IC3y = 18915702772411484313477583493617809166313147544546482894351481289848486181796; + uint256 constant IC3x = 16336125231474892941667849003611054653113378791694063869451412356483463985561; + uint256 constant IC3y = 16709372045210908645558210606323811804038958109984713200681465725462349228313; - uint256 constant IC4x = 19005971096426827854128837349584492075969620357702027599715901169439142039107; - uint256 constant IC4y = 17532207718210544125714029032797641112877037912343528214735964170516471571921; + uint256 constant IC4x = 1350933976763269071586957867294447937413800700092037844783181601781418103174; + uint256 constant IC4y = 20750311635827819546297608986632539297126216889087963597245665338649882002531; - uint256 constant IC5x = 1936021015178206426119341748943108180794913319638205912535284413609581525602; - uint256 constant IC5y = 7967302136211472331990287049203658686597431243250329181974784035551218197358; + uint256 constant IC5x = 18501231329275950544200822436029438898273816039878357368580284740930603918349; + uint256 constant IC5y = 16510519818898985288434662540928597848930750415753674143154410631185500112194; - uint256 constant IC6x = 9992554524016746312003618199582955623647477467519651007496252737703754630352; - uint256 constant IC6y = 997153275981161531565982027728817123365375819829482012091549818270423282402; + uint256 constant IC6x = 427412941873824848381412611056494125871790409703845220166618687524391209220; + uint256 constant IC6y = 10167070060121087105778748574545912745978987835036254100788097410173501412000; - uint256 constant IC7x = 7712197579878897669743418158040651069819471864798300359532421509343128597573; - uint256 constant IC7y = 20498432515857145880555260380958760566875858463167134358631571286825812813269; + uint256 constant IC7x = 21680316401697530387659464976920243382540489663483955131578556609062302835516; + uint256 constant IC7y = 2771032069976544571540203366171061199405282280032342847790829625616631647712; - uint256 constant IC8x = 18584297171621908469803449997963801603823813214190833275839121570817476657021; - uint256 constant IC8y = 2445386723403677400308664765622312273023037374330967243299653211986462592642; + uint256 constant IC8x = 1589311253286323023458190860456307249957732223306580780846961205512934847218; + uint256 constant IC8y = 15833650494813701499577469336077389128198297210161519294143908475223515119621; - uint256 constant IC9x = 14133192108880623735273270944236158184105520798975796184751235384867979739155; - uint256 constant IC9y = 20404122581377456550753849206502073960629482972120621127516616915445683083056; + uint256 constant IC9x = 21638568856698830240031070255671678582986420697404695863717930104267814161320; + uint256 constant IC9y = 6975344041422413085553707201542268576262375864550055884252037251260047316151; - uint256 constant IC10x = 21620582086891038692341479911819403068709367310253070056590551238915328633223; - uint256 constant IC10y = 18630174909646554249973638979405958638024971216151180247838752724473240059069; + uint256 constant IC10x = 15566951744091774571845346864625632071562245268051450620323746657341194468372; + uint256 constant IC10y = 15914767178458871606751985281168248486865781320875596838197186668380476371625; - uint256 constant IC11x = 6342596883522327201634816902398912758838128458794280117859726335647563585947; - uint256 constant IC11y = 2824016079010236948181204053147426819259406110745168974616977685808163801290; + uint256 constant IC11x = 8870987399617616621565790607227519512363052138281107719713711770259195535562; + uint256 constant IC11y = 16576269088408263050408687625313770698422473413425428513433714723321646898172; - uint256 constant IC12x = 43159074190541489778203261134463021016969587199344421115375597833984885585; - uint256 constant IC12y = 17350896801758852580882302620622451451656238190131669741645781468036782408702; + uint256 constant IC12x = 4302631833151351458482421257465143931437663458677202329023634462155064365599; + uint256 constant IC12y = 10473604306887315063978965617794993524128852056520678852181652265045583989925; - uint256 constant IC13x = 5321216183955287064016722685217746316057734432786380277070838310613909336891; - uint256 constant IC13y = 2334801222880043538040480613345627043718796655094720160375512110863749425857; + uint256 constant IC13x = 10582158030205725561097015536549835398898162476729099047306076287629106871344; + uint256 constant IC13y = 14682837745334444080673007316454703694306486261985003264248721319007334479744; - uint256 constant IC14x = 3896684584635540489763375035772495988353847533817784420117417709276419469254; - uint256 constant IC14y = 10946516808373943526791204345554417681977551778921357378409837151667749092291; + uint256 constant IC14x = 11029547759155411999286197812647814990318800254899998378660231932754125196682; + uint256 constant IC14y = 16084428567867324049086244023860598710803653871684454604196448361202927418469; - uint256 constant IC15x = 13544430687582833351555151609955883457501780885438485005798150036967658669454; - uint256 constant IC15y = 12107768107013128150501889862480428065699648543203108548328101125430038577111; + uint256 constant IC15x = 1131984867972909408440829748802232780744768465826965195607437394686286413627; + uint256 constant IC15y = 1027448343262935656852093908415087517053342078127862257282557746183650002095; - uint256 constant IC16x = 20956163448328444323344906937345570843311197655153127557251918352529849395595; - uint256 constant IC16y = 9598212570598439607775417965490373879497529804091617545914636036363751490464; + uint256 constant IC16x = 13773651067643441656258855495261241624865695567386017806188387539831324444653; + uint256 constant IC16y = 10099048929651180856696561584499995020406508763374700440471459482571469923244; - uint256 constant IC17x = 8449456092675518202758567183735078063848547815110371262936870940442334259757; - uint256 constant IC17y = 21524144134927604254378260953498622529381737979908227933427485851545206692964; + uint256 constant IC17x = 7261522173107989025754700034160229984396817947135820259206143417601541759243; + uint256 constant IC17y = 14197346282964216302960496946080841539639325641322779752411061233650174236593; - uint256 constant IC18x = 393847122473837845101843958338171385083705802293147226527157239309984511996; - uint256 constant IC18y = 10752382192217751383168301683456208551797510589007358704657988919297497446610; + uint256 constant IC18x = 16804288461152811240273272526375896569268609716294064392984996572956810172145; + uint256 constant IC18y = 4263264235883275783920963131811238561265613954374210889318327987454695983008; - uint256 constant IC19x = 15228891166659766368605640799948864234093810898436039102385035716690203722442; - uint256 constant IC19y = 10660180881739048220615741801758109202106271107338130476996669627381881546392; + uint256 constant IC19x = 595455057683637626512977674120429818667714277492803563528527493388253182962; + uint256 constant IC19y = 6206917820423018505484295069638549645856906308850248630512399872229440772926; - uint256 constant IC20x = 7611617887611604008702014435739239029985615041644938533863855284962222542764; - uint256 constant IC20y = 830253140800199591016113383493114526088389823306942699451888210794961973972; + uint256 constant IC20x = 11593280811993289290352475831100253791227442039341254544883515411103749159202; + uint256 constant IC20y = 19908836799588537779624973978158215794141858934866399503207571702467035492203; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_enc.sol b/solidity/contracts/lib/verifier_anon_enc.sol index 38dcde2..a2ea424 100644 --- a/solidity/contracts/lib/verifier_anon_enc.sol +++ b/solidity/contracts/lib/verifier_anon_enc.sol @@ -43,53 +43,53 @@ contract Groth16Verifier_AnonEnc { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 6079617742568787541094179325682887909945808244704810735243959827192832415778; - uint256 constant IC0y = 16787571520225799670519045007682168421960853837217519526390259473913021713340; + uint256 constant IC0x = 7931311719081566465480649715992708094598627348800170176927479505406093808101; + uint256 constant IC0y = 5941817376088838807810252948617666425893455770567022654597720669387465713729; - uint256 constant IC1x = 2505991522311752156778455090661523584559854297926222384064524634600878278709; - uint256 constant IC1y = 8255748774878977400056431504849025092327157890018362555157613902790081047915; + uint256 constant IC1x = 16928258953465962969890804620375640048702841828077858720472564015940591598037; + uint256 constant IC1y = 19043210433892171827666467549965350525693047031290804487657467779913020807911; - uint256 constant IC2x = 3236965350244914412491796468123964009504328184224919569631341853652111094664; - uint256 constant IC2y = 5018817446917809174563002251706876062136577540211251783213972233922309257208; + uint256 constant IC2x = 13893841124650965539936318506754662201448290578185576394120910797016266164214; + uint256 constant IC2y = 12460881501027807130891978952070445262407068438412897019863778612309816690224; - uint256 constant IC3x = 20635473822198152490889178203795297168128816692310934597308737609178622412295; - uint256 constant IC3y = 21686381794875901264921303819775850606785172748503700974135282319021418270312; + uint256 constant IC3x = 21445743299110587283548554723821727881394684401368122251892448187698319654554; + uint256 constant IC3y = 5607018312992910177774976204948567935037309043723870192601860202621832277702; - uint256 constant IC4x = 1802657464311138049888005009951146706506829170163571227091060253925154095179; - uint256 constant IC4y = 6464223263536811410457882731522205111712402908223512049836366029568020386091; + uint256 constant IC4x = 2775357873028613337117232136055903239028228920146910237884679111134580672797; + uint256 constant IC4y = 9197095196062675367183465932769233516282478630286811252656294001434982167598; - uint256 constant IC5x = 19683038061393177247346161878002523504516242525587093858171051169964965175309; - uint256 constant IC5y = 11941559534567530881898628022677745180708901756040014021900468886305142561737; + uint256 constant IC5x = 20300862312984320331805178556439009361718726696623061396734499944687844067518; + uint256 constant IC5y = 4676843987605413835468184810986180139482566650700325692734325318376091169381; - uint256 constant IC6x = 15831016304560225046433682948470755223605261989966252819923716158997718599877; - uint256 constant IC6y = 10152669751914951883087310745426443490134580294923111749465612194458531720480; + uint256 constant IC6x = 15412595797347291610327108701909892451615837774610448992395813409002195388569; + uint256 constant IC6y = 7201919017117702660596912865795531136674758347788529734904080497406452869091; - uint256 constant IC7x = 9223895744540988597347383517954906051269131434601393127779914476155588638987; - uint256 constant IC7y = 4057097817924275113774337560125840582168668507218738756759091312261450180548; + uint256 constant IC7x = 8024682466624747152852615945017733672943211654044112711413649432571064879586; + uint256 constant IC7y = 7848265256695364873207488197234740918311304092097323838012666060904415202385; - uint256 constant IC8x = 21887069730271477339395447000828431935392336781494270340838992528947889565081; - uint256 constant IC8y = 2844201003524278672997973600529290000831521001613305325326949178045719277021; + uint256 constant IC8x = 12913719987905933982948549536012436008516883057537119801156473067033040614783; + uint256 constant IC8y = 5820962198588742072863664251139880598059708784737150584476221245927288298838; - uint256 constant IC9x = 4808414835523320523628320681520047895479955081528791196030370521667222450937; - uint256 constant IC9y = 7797923313705195871120077961543496501027976338844390403835230583395399970416; + uint256 constant IC9x = 14210552599250424201694968796490644936079966374724156292158744139988459739709; + uint256 constant IC9y = 11649980189307282998333391781661761611235819966212038608838445906719380687592; - uint256 constant IC10x = 16211172993626747621391823991207229208028328331008628770505605774793950633700; - uint256 constant IC10y = 1746841007064125740967254557870472532226722619400114330227028935555178320068; + uint256 constant IC10x = 5929466371200281104486497068860370175982984163766424537644044896768075785360; + uint256 constant IC10y = 689397593898417912658547973202756977260921816601688159406689650913165064907; - uint256 constant IC11x = 16227183149439187186179102228002824287668616602328858751082873976570526170116; - uint256 constant IC11y = 9130539427162880676961016387612035890807345274623521216630692667632198253838; + uint256 constant IC11x = 4968268082807827688590303184635970702339421236186336405029070096209323126184; + uint256 constant IC11y = 16172603842417782640650920675833145432890979710754039174897237847761578517044; - uint256 constant IC12x = 21716508817418550410875346202260448235027234519728647013970503004924891373972; - uint256 constant IC12y = 17548855966889182106362129512160022419387113158178611749412734874189761681682; + uint256 constant IC12x = 14759307472110070434555553792702366876020623959044901391998941721042349165457; + uint256 constant IC12y = 9219735039978169438128330112318642361562896453434094117253148544562152923295; - uint256 constant IC13x = 4196241592017627542929377456411216126324404517576014546207377205111904423400; - uint256 constant IC13y = 15225817043451991271351666619621568203461001025671068346305503483918132477767; + uint256 constant IC13x = 9794895966567383812016496369724196333563865305320144867952048471103706081082; + uint256 constant IC13y = 4370713696282958332809622261238407480364020244910558052370226462927406811396; - uint256 constant IC14x = 19892615000249065498152255196451223590291375775646942741981105696311293768977; - uint256 constant IC14y = 8090737511599560169511450830471484005709823693720459500304471799924206103331; + uint256 constant IC14x = 16370092467143575188638686340965006672429395309356635218045519531840749439607; + uint256 constant IC14y = 11593475380891852689872378527951380259748677042606029356341478138569048335625; - uint256 constant IC15x = 8663346001839375986622551340093804693770355108507981331683176599016183492970; - uint256 constant IC15y = 16427003456838313815469615381585105215654274650877521404992073085959518425353; + uint256 constant IC15x = 1283559242355494148147980131696867188691474006300052144697963344127478638802; + uint256 constant IC15y = 13067894734033583195992013738978344221914110650626797398077781374211860019934; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_enc_batch.sol b/solidity/contracts/lib/verifier_anon_enc_batch.sol index 6fc797a..e09ec7a 100644 --- a/solidity/contracts/lib/verifier_anon_enc_batch.sol +++ b/solidity/contracts/lib/verifier_anon_enc_batch.sol @@ -43,197 +43,197 @@ contract Groth16Verifier_AnonEncBatch { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 3908746068902036584695182673403181376603479880324582148825114321243612891671; - uint256 constant IC0y = 21162112828786064616543713929918229698704770647235889713363318394799662440150; + uint256 constant IC0x = 17190705551387374165465630178414097882207179175808416998592104672042269145796; + uint256 constant IC0y = 3326253291529306070732568800881802510427404631986019999432955654669384850411; - uint256 constant IC1x = 3642379909743718720667223972616632947803472137181052841764599881302381778193; - uint256 constant IC1y = 5700062060799493168353325536337066888282356197708377158048176553718887961221; + uint256 constant IC1x = 9056390472479670450917040152074067224677908131790289664302602506677480851951; + uint256 constant IC1y = 21757253069807310495476401204508619324839407168714508584654514015487358196590; - uint256 constant IC2x = 13883714266251598676630037212091956816674874202970543751742190275360370015; - uint256 constant IC2y = 9013128711267905194310867088026059129312846054368138240183884595232062235239; + uint256 constant IC2x = 2069077889203474724816447634850290436482175153772764866724239509530700894855; + uint256 constant IC2y = 208730408261053193247666753865958284951853499381240921490613511706057823815; - uint256 constant IC3x = 3005999804264520883776168981440280516015224374225093267192929039128816329831; - uint256 constant IC3y = 20748599987202621944902199730230404932808959329574406094906500495616797482469; + uint256 constant IC3x = 3290670235884248631506359174448134984445233397119031135129796340956777436744; + uint256 constant IC3y = 9760219669615574514863218794396438511168675570983001450630727785007924125265; - uint256 constant IC4x = 19481090858272465556740330791144452263528458359409223764958298903470626687214; - uint256 constant IC4y = 18792415692033093623283621756130887804607686318819520564109279885343725019638; + uint256 constant IC4x = 12919904718686658248054197412933615239403401430512363345376657087643920755223; + uint256 constant IC4y = 7248244338513169966484555593146752396608270324481358498006089075574025976474; - uint256 constant IC5x = 12448969713894488523025375084312693267106761955829181487340902708351392804318; - uint256 constant IC5y = 4451943501205517819821482547357035849886373691344816307731343919638734214628; + uint256 constant IC5x = 2691558500563695383361232490656352238556774483828798455821796957059966501672; + uint256 constant IC5y = 352960762102970661800394160551776345637143894219021438415228630908954124083; - uint256 constant IC6x = 17381664162004153834575790930999161722881655179006604605262793792758642679983; - uint256 constant IC6y = 5955073198925403000259868133683281308276206242749187044627128494389698388722; + uint256 constant IC6x = 18520511510550227927300479982157835181910123158464827146158177527544089295768; + uint256 constant IC6y = 20419296272212947212216695670093334669202621379143200895464757793903971181114; - uint256 constant IC7x = 7540844870141797048815373798751154886101709148125189742954623501252821997380; - uint256 constant IC7y = 6253525261723826648073142578082080126084448733139026722678777735052950257090; + uint256 constant IC7x = 7508741787655335082678183776755435685106979148194551309981416079715353356583; + uint256 constant IC7y = 2407402477085667407046245036470553985246462229714505834190107059575903138299; - uint256 constant IC8x = 19805839997705144135889984708566038603472574945344324622837596914064713396199; - uint256 constant IC8y = 1336803162223913469717834381642344031253707528449013464685678590395405372864; + uint256 constant IC8x = 18471669522613276880927322243943745047807588459927532872119704665432814226019; + uint256 constant IC8y = 220974884629047711248636906223843138145797460237638863178879042569183993992; - uint256 constant IC9x = 18743451807103506072320740175279990367359976354617847354453015666990198214627; - uint256 constant IC9y = 18527226988684050908269162438789430990161014050520725276204980965985853219204; + uint256 constant IC9x = 13345311726308524776318222905324880414181628361069254367702105291327468535151; + uint256 constant IC9y = 7592910027522546290963914942103856601207471971485612198478973552339663568202; - uint256 constant IC10x = 20716469926257138332742504820777058284131343022612153237415866833385089623853; - uint256 constant IC10y = 20438179848204046204482294061221996035662916929180980887567963634980416073069; + uint256 constant IC10x = 13274625120628505373297349036556342813233987616021013569948623159336109589281; + uint256 constant IC10y = 18113361933410414139978744858333352312917924095523046414356847465270532816626; - uint256 constant IC11x = 6378167574020817442894921644749771291392288745723612491815802933722465022623; - uint256 constant IC11y = 13612187135216559754197989941297002639880538077933633423488138677161003311657; + uint256 constant IC11x = 13865496460610830149622274536480856006956348689298181107698536163562712251309; + uint256 constant IC11y = 4998598469936468120997364661012918161041745683420526844612371472037226418778; - uint256 constant IC12x = 15333385857097851253178637621370818801581137753864660693323273112058689282911; - uint256 constant IC12y = 3929171055883544259875892994148070720031202423901700713626233026945678946404; + uint256 constant IC12x = 15976872676815625131186807117261916671320247985113346348950325657811291818119; + uint256 constant IC12y = 20375165867414751656178029498100583187074051027121238559135499145614512941549; - uint256 constant IC13x = 5588270864149004230690874713552426810100689407611735740482460767687752844001; - uint256 constant IC13y = 5975921942596934133040578610353947807735217388309529074679824658469199227349; + uint256 constant IC13x = 20668739717088740287358853136151547997596921248335389604371896008780216123075; + uint256 constant IC13y = 11649672800935643198110650959294030572751613556584086602110166456386943463263; - uint256 constant IC14x = 17482138958808661765571534232744989982797890714926530202803582580847984111828; - uint256 constant IC14y = 12783807925168095357228813653429913560592232717199060728813868234026459712035; + uint256 constant IC14x = 20178475187575318789395031779023360250749924418577873618972806103917126684375; + uint256 constant IC14y = 15476975938044073054921421125111433839183811825798126430912366915592611217273; - uint256 constant IC15x = 2785449574867979821310147122748672312371896423551839609838567027349197532486; - uint256 constant IC15y = 12187886123456423597181467422649464574165143241869537436961826041334507459920; + uint256 constant IC15x = 12340103227493922778456593173913260600880232919766506331150893300119897033299; + uint256 constant IC15y = 3272680237518907406708321423224323767725085200156596393940832245136408787567; - uint256 constant IC16x = 5307653834074549453349104857138757249380008569841090576026761463649739707176; - uint256 constant IC16y = 5556978340130369354792430826031648726565387972967466131395649033860118288313; + uint256 constant IC16x = 8657739707163007108055786839360950234976340035476906342847834451121317485691; + uint256 constant IC16y = 3652426351246057898660024524828619564166560260344683916581259191484090434315; - uint256 constant IC17x = 6380884202734787460830258794401534351853688368379241837874778247355337094508; - uint256 constant IC17y = 2160697878844498790334940441069541742178686519044433750614891120647951902322; + uint256 constant IC17x = 2389452475845900822444495096680736209381422044735491408786630034896721176883; + uint256 constant IC17y = 9968271044019125687715476231282020447454258770597711658425115696467847213929; - uint256 constant IC18x = 11994658167418635971949537753955340743184967862844314723032425494876612243720; - uint256 constant IC18y = 3010975013890706788598968771755991435380467529700332035057295090132482159402; + uint256 constant IC18x = 4361932226345633869318702800429127614954966728322972774836101260425413484935; + uint256 constant IC18y = 15794927263351030509348601284219995252478560495831326295512532824437555021023; - uint256 constant IC19x = 18784528983632535501290508098053725269371240085820529055982172140023060191393; - uint256 constant IC19y = 13647276251296256634937664644156826048778671296470861936367346727458948097363; + uint256 constant IC19x = 18472666759040770136040287734572476173488186713169725992540826148283192856060; + uint256 constant IC19y = 6644107632317542213058387951921972647661332388291937544844303743391780397923; - uint256 constant IC20x = 19901565685179060322212685217062886072478782615405857789940282464218702015624; - uint256 constant IC20y = 8752686505194012942840032413932954407921719670319213528230352404437455645753; + uint256 constant IC20x = 9829615215742981574535259935859032179976113887836305162146982668413983379592; + uint256 constant IC20y = 13933695694553308407737899463836778942624743038377127579647661108746683485068; - uint256 constant IC21x = 4049510686026776133189723815304253783453454878162320427646942186291582655461; - uint256 constant IC21y = 18008014605111680985940242802309637149257979280274959365104112879196086525621; + uint256 constant IC21x = 1190106005642629657179204847684671672693413803948536150966897205607062896189; + uint256 constant IC21y = 7445344357214588757423998950551920035256982808944161212594755513433023796118; - uint256 constant IC22x = 3643744528885984116890759777109742229700033784333065122839897449308536196557; - uint256 constant IC22y = 4187499643711670495859597326881223383699311901708594243258745295267681297968; + uint256 constant IC22x = 13560517120279809178159268592319171302690761333480060958385342523002582700755; + uint256 constant IC22y = 14758334088619655322565352346349983260946614298381566173762007224105824914790; - uint256 constant IC23x = 20142636948800246848499978068189374630932385609008355413915058826347340990557; - uint256 constant IC23y = 2224975576037599199629130082723271968226763768088257626452852292819197114424; + uint256 constant IC23x = 6120867825174283986836926728203292191380095094630398556979574683101447071744; + uint256 constant IC23y = 2651465889259740475961949788686856113783362984495148404171493261034421508818; - uint256 constant IC24x = 4189346926624797283351494372365410510941844835138208871087521071924041718500; - uint256 constant IC24y = 11678467025169017527080715443224734827743662587027824067762559460965643371449; + uint256 constant IC24x = 14744291168633475607835646215414672951228112731383085919073834113204906033436; + uint256 constant IC24y = 12767950174224841741319025676084102284334909290812116709140408630955975715891; - uint256 constant IC25x = 2835866165380135068127599110412553728305300563836464493980711777954637073906; - uint256 constant IC25y = 11418211775598851998087357475845197564261451852151861450865404775845026864433; + uint256 constant IC25x = 1786809097618922431706553976149086465073118915033069668657785636438093107253; + uint256 constant IC25y = 10732778263613146492986207957226453655129865292705602688810713921319909556420; - uint256 constant IC26x = 6184995568126332874855666630338561271853258126973506922385207751979385498602; - uint256 constant IC26y = 9678587807318338281788726652574496054471104584648159494751436934262734541814; + uint256 constant IC26x = 14981344630181179597682265301026870334035473194100264945231286188628996815361; + uint256 constant IC26y = 6214431963167067471287444472312645702232742390916189034101528308225444821195; - uint256 constant IC27x = 15565834122743701828678116147681974875652599334101211815506693273501585368760; - uint256 constant IC27y = 442538129585699161258548075040705114030290071054990071615328502434649120437; + uint256 constant IC27x = 5893711315331155121990502514220597587208248975833788724596135914001006346006; + uint256 constant IC27y = 18749665808474039346244394845184883127613662390188541835798463806875307217423; - uint256 constant IC28x = 3192581844028425535035916103212522902617678210751909712329481309981427694695; - uint256 constant IC28y = 875090420003136105575970258064025129997516670755032293104717805554449855436; + uint256 constant IC28x = 21027185610791690303253869994804969111616218804674113642453583565680209359764; + uint256 constant IC28y = 7936209694667761102864394112090767125068090722954784444358146794017232155146; - uint256 constant IC29x = 19129803414895534287249239378206036763496633362660702877511049376065173879685; - uint256 constant IC29y = 13476877444667980639577177516354785556257475458010264623920927454232463257207; + uint256 constant IC29x = 16440749915049905568771710852842016704065906853006987246654318326583685260058; + uint256 constant IC29y = 2137563558912041291285106822634833183909274714607235644111021985752509763094; - uint256 constant IC30x = 19637362155422132622327186678387575499173188069611530140664361817836309117089; - uint256 constant IC30y = 12746409854715557430503825810930174826627242326994531239895244410729264842917; + uint256 constant IC30x = 8912815525745351499394179119196688391932503544598568769209228156607367203899; + uint256 constant IC30y = 860985238431007380775519923460493952035470238435223739855074097251116326211; - uint256 constant IC31x = 16328912677341901807792509296560206281257420836520156102014658082160481348555; - uint256 constant IC31y = 8459082892838654273483879375304068831177002387638017901977261066723911428821; + uint256 constant IC31x = 21224837900098927332837562316691318035773274046558763846097039583862854174821; + uint256 constant IC31y = 21042822746913005060317240297104330439571844723782690195918679695116912241630; - uint256 constant IC32x = 14034854298585741434170328517907747523331147800071615806238407880893507944298; - uint256 constant IC32y = 7677200450078323156871969319025444105783009677563714672945142925630687465585; + uint256 constant IC32x = 9179419322121282895450311945850246830851130178656479449926059275579950197311; + uint256 constant IC32y = 4891954583043843534468015537529292797250343856138720106851301690295318728606; - uint256 constant IC33x = 14501072824190539624914743253079070280250538860117203479232126487148710641455; - uint256 constant IC33y = 16167992375464116570684842429142537304944706449068534932195849898107426884478; + uint256 constant IC33x = 2660509482198576518676293588476043106215095245075936115560211547469291502601; + uint256 constant IC33y = 15706931031454227080346208853501020169075744763907828253201208884894517763782; - uint256 constant IC34x = 5503113010689888257682320859656620694303594044205780087948618736092887957433; - uint256 constant IC34y = 1696576415970418474450210124757065887772837815866971931349726049769328195003; + uint256 constant IC34x = 5298825468922281134275952888288413808602458337966267966702712665613399660923; + uint256 constant IC34y = 10085042965622829982954928942577007596734737682027016301879703395118282439883; - uint256 constant IC35x = 19214195187847873310589726397831481907391292243012217437911869663034067503887; - uint256 constant IC35y = 9805467215740856344169239336698580758111080655230710098273992409379459002166; + uint256 constant IC35x = 14273368877745260344772524398926555223734621505224171918733619103053410588700; + uint256 constant IC35y = 3633795793357716089662348958173575842650492753040167936434857224581514007457; - uint256 constant IC36x = 2824456631103843669798437055745012788573969191567997729053271364215315472198; - uint256 constant IC36y = 13210219118852365274638175699060587136493568715489361220574973518671149360830; + uint256 constant IC36x = 13926716448637669092257540299210654644023651439264676188717954905031152660392; + uint256 constant IC36y = 1991938558589377208638834203440002422837340069393625276381249819510730044904; - uint256 constant IC37x = 11806481874674376764400918831538020092220367856078576427943414721863895872584; - uint256 constant IC37y = 1126182565826373196793339854507275444810683313777655057798659711783831535129; + uint256 constant IC37x = 16684255030447847871432117226362591499750474862897509921341848988594345959686; + uint256 constant IC37y = 12380126251013477730717645072620949715543798337877164508304962824457034058133; - uint256 constant IC38x = 12907395246775078964695235303299684888761112015317926640682209536722683179970; - uint256 constant IC38y = 17810240919535582525306841683818586703251299768563907071136830231386496006481; + uint256 constant IC38x = 7222626539317841362674899161489173693980034957686471866354504173060502183680; + uint256 constant IC38y = 16296179153639714048768048811942614847304343111331001035236610896766164054630; - uint256 constant IC39x = 17953909650597556894054352688798883115945121384051215064284235724397668654955; - uint256 constant IC39y = 13868992413127277275852535983401633335127263080721107747010259640411782217018; + uint256 constant IC39x = 20214089796327880760458890663666242392161787375470021992611876929315774926117; + uint256 constant IC39y = 10005772126914014376740737725231929708705633638726988844491140731371891239352; - uint256 constant IC40x = 18452672392295991040358492725963563156958402350081327237035645703595669202145; - uint256 constant IC40y = 11005267617141936063457180323889422859839808292113083196215725053413990289581; + uint256 constant IC40x = 8748474738961242727393074667927152816376181853081228777131234676703538308360; + uint256 constant IC40y = 4166370187429475019955474697799100274438224655642827468710113779190557564319; - uint256 constant IC41x = 17946873002177093051195262691330301617336977974010801103245788627534677577351; - uint256 constant IC41y = 16139796083075326250719854294605911968674896065038419671645428862228038091678; + uint256 constant IC41x = 19178932044892768279069897846039005091056869340101308652740855895567820730162; + uint256 constant IC41y = 16988231257924832827488583091224647809144034426734711076896415994250847423347; - uint256 constant IC42x = 5111397968235238332889036830227772356073950460888121488319801054320635436116; - uint256 constant IC42y = 20126877650675869342714256575239930124479211219283818759347984503206238828307; + uint256 constant IC42x = 20621194198659736522847563334540074109616979942667342758071691165431090255778; + uint256 constant IC42y = 6711423905129946113774129466876046963812333205159346718017663285810329991695; - uint256 constant IC43x = 15577716111736423524314066239481646978059221029696172444899093153756766882663; - uint256 constant IC43y = 1882481077141013113637554586855942932004581120336227655362544837109420362087; + uint256 constant IC43x = 15416099361236042350122688170653915147984217974427412549636420903251622473972; + uint256 constant IC43y = 9420726600512412296316343772448308590418941880142809732152241469716822680817; - uint256 constant IC44x = 8002207922749820785367626599773500821408568962350573677120091804299338076164; - uint256 constant IC44y = 4349078923495179616645080177079492735428786142729957153306733080220170105442; + uint256 constant IC44x = 10087929311427463830545744556245715627319218860026295347599032137643997623006; + uint256 constant IC44y = 3337350136039114557348267104573358779776464691412498613742106808294761068935; - uint256 constant IC45x = 18441600711752353062180825497817050541555822005558821568453023287455608310394; - uint256 constant IC45y = 6416009464597275160567435185449771745423054271079755029789158059043365752903; + uint256 constant IC45x = 15244723816223205457455627780040989300878352761671294956537732599106486136633; + uint256 constant IC45y = 5753735210573043347679708762689185983937782364338108421697101884274601803111; - uint256 constant IC46x = 14092536542972186697794938073105318364618372411217087001912379181513116038578; - uint256 constant IC46y = 6915383375856867729473839705813161763964779725107660715856712463379573140538; + uint256 constant IC46x = 18933044827425121571130594729293859370866436775794753573276388846513711888648; + uint256 constant IC46y = 6177735740795796237136906064608022021364556914950733999056000371545479654213; - uint256 constant IC47x = 17158487437315882139821485017999180800503814926388843639611073513525549132901; - uint256 constant IC47y = 4429408683260349034652925083312216193990954298346463687111904624060815262917; + uint256 constant IC47x = 12569563406489656836431353757451195874280920615888052462826880045887136572477; + uint256 constant IC47y = 269170251104016790130584618792246555948171160505005630043281879039431546997; - uint256 constant IC48x = 3894268030249209499477219755529510826505048492171170075244819528783816018950; - uint256 constant IC48y = 7624449612306353256481523141589168146964283570927922448005793884356945743541; + uint256 constant IC48x = 2938184716360037364418522464730835059591839931178816523171193685926164368173; + uint256 constant IC48y = 20464075746327163268357077448971116263988241961476959526165538089357756191067; - uint256 constant IC49x = 2879903388769375388864978492549156271072122372264964992937081397289611351099; - uint256 constant IC49y = 2293590991962647844941952134955325970988544992429589088487943316187569970984; + uint256 constant IC49x = 7152037383227442223506356303732572308443617532503182492862660448987836761761; + uint256 constant IC49y = 7302052959547380986854420123600411021989772648437459668778762768724015977984; - uint256 constant IC50x = 12919709609239979981636352053788922219478857416525759799138206817584928562369; - uint256 constant IC50y = 14836049567116014267843850012075892801447453733869024281915617688581220558191; + uint256 constant IC50x = 3136533076750072302401122147831282418307454169150671086191653285879577853529; + uint256 constant IC50y = 6478545731711527023523598768790056245076696915888882042639662524463295335549; - uint256 constant IC51x = 763839195084499434891469437185541300454664672090741450855014240752484631041; - uint256 constant IC51y = 9067748818656011510924592898496372151514937193974550909843638885339488286464; + uint256 constant IC51x = 15994031278923501332244374870901020922072589753160128559475605117473747999796; + uint256 constant IC51y = 12714044855777943367158235016853423483808532038920127690728215956216149902783; - uint256 constant IC52x = 3671159513272968818143393692773242997264310034906138662167947465059141188953; - uint256 constant IC52y = 5992372490740298946418458652958235484496577113448890395742452518043316209831; + uint256 constant IC52x = 14839687929365632755835736688340709835056894648452358750947467311844602020368; + uint256 constant IC52y = 11810826609453731930125925528624806186541040556765687236885502977057260637006; - uint256 constant IC53x = 14752468970553446165055418939963620165645481039190653184028781955590932019663; - uint256 constant IC53y = 13602415345116961361486713666845157930319884913254722970150122034256792375891; + uint256 constant IC53x = 11677352192162393780622560069128195996025162948885725150388444718469359263435; + uint256 constant IC53y = 7505001428334282834748735706502184904449852818142861323878208106784121392022; - uint256 constant IC54x = 5547973682947408039996168490267734295620817217937711575875612846207168705930; - uint256 constant IC54y = 1918514152899230992458940695194225161889379459601704182659875096307986684605; + uint256 constant IC54x = 12906941464748621539395789783630772803852422418097670807977428016272807703891; + uint256 constant IC54y = 8420025012155712606421667269741394278258118294007360874391573854308417499136; - uint256 constant IC55x = 679887516886724778127471600180439877584093980737395592616133171342583758513; - uint256 constant IC55y = 8352201394168531248618467666702687234040530811067203410289324437655297694803; + uint256 constant IC55x = 16769924047013466307575406549527714706528708754424190482416542781513157571303; + uint256 constant IC55y = 8742367144574877376159945945140693721579605243213816449060580040025133583930; - uint256 constant IC56x = 17544853847589823116800694008933471467297135010824087035709723539032570705536; - uint256 constant IC56y = 8864575927894913800601743571398347523212536745003501446294055561733569909365; + uint256 constant IC56x = 16311697532766564568216400660076261342449594625250680316207994313685604014256; + uint256 constant IC56y = 14459635704881027838307406633953343728297099902657485661606546336588472189011; - uint256 constant IC57x = 2496168280855643738727620876530580168098962365131910848630447384544330182659; - uint256 constant IC57y = 10990402612417964640564193796460901114653180089925666474012910550334812115843; + uint256 constant IC57x = 6874848848790300053883880665062191184727922643778021038384574543135892429157; + uint256 constant IC57y = 5366415503455642378926070540814442854169626672138644107040112550094992599749; - uint256 constant IC58x = 10229070342672799012496852192766333061425138877942229915999360470050629255994; - uint256 constant IC58y = 6765694676136184470134212249544791768884120464124594017266794746785806260667; + uint256 constant IC58x = 17135019340321224873188452097564093215117776610708321247166724386103388542065; + uint256 constant IC58y = 8073586424903611489885548908272053143307741865895982553720812859704984694223; - uint256 constant IC59x = 15807821231740066210147893568369331798735344432795832027394420750219942185900; - uint256 constant IC59y = 6760223102321380418036718494886836729173433114703543456433986174390102910930; + uint256 constant IC59x = 7570328482429665524547207967739889884467264116248289928677291700605245126621; + uint256 constant IC59y = 3058931634571090293171627808464332089504503672918366595573585337782814624793; - uint256 constant IC60x = 14819374468504311081864250741777844866365249186097301524285476049706195166128; - uint256 constant IC60y = 6146117414386626951125929842647069972302993155770755896539505045758996575874; + uint256 constant IC60x = 20414248696364157760642156076234891106389744610922182627100453811581437400253; + uint256 constant IC60y = 10648319863692432962144117790034795154034669299155378597879793913253325717245; - uint256 constant IC61x = 17251815556152386496259216370538509798062455962341612838689196751688413591935; - uint256 constant IC61y = 11875765802989746483881648485855343245577413942918675488651690374569095118334; + uint256 constant IC61x = 12825505872738496028829862627101129511992812008244453218033769555484181779280; + uint256 constant IC61y = 6307444362843653737823883516937896803360683045223486569986067367035277556831; - uint256 constant IC62x = 20800661164952129033157405872159184314174315843329633112524517864715608206596; - uint256 constant IC62y = 21829732780229162843374774921212052602583329914292743573368799594491352555167; + uint256 constant IC62x = 9651994352301832058364814865898524894771635708636004142989748465584707565122; + uint256 constant IC62y = 516493411239149844349039968702201840368482256435807566827099766317904316090; - uint256 constant IC63x = 21342378743798699061991894488476560795684400968203499616358951245153720325541; - uint256 constant IC63y = 19870126064041049008134398111667610858164378394136143440856102921211634375855; + uint256 constant IC63x = 21497976274252177959246207685625338195381729816485423424233653103244676879328; + uint256 constant IC63y = 2950739200224660287089919929522379213196188831206009934176280361011566739313; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_enc_nullifier.sol b/solidity/contracts/lib/verifier_anon_enc_nullifier.sol index faf9dc9..545b70c 100644 --- a/solidity/contracts/lib/verifier_anon_enc_nullifier.sol +++ b/solidity/contracts/lib/verifier_anon_enc_nullifier.sol @@ -43,62 +43,62 @@ contract Groth16Verifier_AnonEncNullifier { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 13186961142855695713215508993146324875923985095596320679393949609083204313149; - uint256 constant IC0y = 20971345401241718044712794959871979099146385615338124541387235060520049379158; + uint256 constant IC0x = 8657756420679701184502917191508020726862374036950916575337877718383399184180; + uint256 constant IC0y = 10149529747944182146671147248171759566757208634718959133691916013439128058638; - uint256 constant IC1x = 5596617714573916358922180002027668014235338143603477528528486901732341689174; - uint256 constant IC1y = 18169906134045908750217506289430594471297692054976720067363254769322149496903; + uint256 constant IC1x = 1206637911092060704578853512125749996555999863452184159654354675704904708345; + uint256 constant IC1y = 12932935639979076836438737783396400377565656725772057117013397464901971905556; - uint256 constant IC2x = 375179729015950750015201049819310173893173497990919017908984027536413071576; - uint256 constant IC2y = 9424775450378236225311877676427856463800505168584546278019795903879869653255; + uint256 constant IC2x = 562519197497253760996100122933394049430300624431259500906196236142350444411; + uint256 constant IC2y = 10361387324211278124664094481061680399278881318978985774085138234228864541755; - uint256 constant IC3x = 11274430801917269579049341224818927549055426765888901159013230738656035062422; - uint256 constant IC3y = 3189755612751098000468491357364886513239164449226908543912757934476464389054; + uint256 constant IC3x = 10423963879779636396284067358983202255988643525710461617611331753147387594070; + uint256 constant IC3y = 1293229660426238329020664349967069581381041777216277655920366527543924754828; - uint256 constant IC4x = 20929082467182106010914967176636813721095808918472812976664580721651732592348; - uint256 constant IC4y = 13590940037054105258652229041095817375779493944187485965073911187461107846297; + uint256 constant IC4x = 16589784280033594644690098247588729996620907779268074082828695336367694035633; + uint256 constant IC4y = 5373763608718713986241969737336820910960965223245690211989718163911447447766; - uint256 constant IC5x = 13232903067874280762878913491749076796638411641135301821217124752900497650520; - uint256 constant IC5y = 3098408428950175562313109379843251475966975308784566531924231123690657805627; + uint256 constant IC5x = 2206204975933485113032430843685187337521969361703937520466366528537074250244; + uint256 constant IC5y = 1085888251828361786820011413034261635017132439183416747018321907916305074810; - uint256 constant IC6x = 6246173062073750433581743829955768134424088785068454722924323050885412449600; - uint256 constant IC6y = 19219797486656797848241452853177083334642108284872282760570063002556809975661; + uint256 constant IC6x = 9263277258320554202581070438468100905521444850567134280050580578006932173119; + uint256 constant IC6y = 8294252792830158126021348131053207014883379498580238798661865894168184292483; - uint256 constant IC7x = 7453233983387318661178651932408006745309306355452771434255874320002345253711; - uint256 constant IC7y = 9225001627794595551093094182805061487091405736825352117536572235256477135677; + uint256 constant IC7x = 17481291003954860040316371624948244947074950707454880088271195338294118517123; + uint256 constant IC7y = 15563975614400758533630890200042672417319868623068463471751037766096089701301; - uint256 constant IC8x = 18342465191764991960466571178007119480650524152275745666268158024405812199371; - uint256 constant IC8y = 12952848418572949914293934585650902172593934866286184499401182404379354207308; + uint256 constant IC8x = 2546178348589063017699405828581925015875480521708134472478955367148913434160; + uint256 constant IC8y = 21119156183270523762297061139644453960469413711953154607107814467936146245589; - uint256 constant IC9x = 9865405396995605199540055955768414603837675331688896447120522579824006040717; - uint256 constant IC9y = 19780045876054499971685641070283582330825263831247355373985460286779094262264; + uint256 constant IC9x = 5916318157826452225572192389071108619431682654160479548932110177902455570148; + uint256 constant IC9y = 14980504815561113344870779588717558322406543272350626587304328970253059531200; - uint256 constant IC10x = 19595303252376026127217163146415569608768471715197052008834274372310839720444; - uint256 constant IC10y = 118607393237836195014459739357325723385136249376902204893027498109959871584; + uint256 constant IC10x = 7553568048045654100324412451910818765292861436139632170370096186496327673367; + uint256 constant IC10y = 623541364796696648479755745770567439029438348222137831522822288269281717192; - uint256 constant IC11x = 14505445839213666867181925900312891080180471300047244470868724103662016936466; - uint256 constant IC11y = 8841540133735299700679385674925623888182536990207983700647391803724470593625; + uint256 constant IC11x = 21713389490050356176286758590365494951088402391379414746979879962233331336942; + uint256 constant IC11y = 11102446911767060781651283761449563060613791728738172203101001431734498327224; - uint256 constant IC12x = 17491806486925694090025037935952274750032487113907267345258320361047408402586; - uint256 constant IC12y = 1299775985616705819045782683673965249739119990810775663165842759710720368768; + uint256 constant IC12x = 15666910253996036513579055567160036086177147542537007371575161706523707112738; + uint256 constant IC12y = 16628502896418680585772362220078157685770366023200198302860181122427813076414; - uint256 constant IC13x = 2270224360723690085561517855283974802332585316034921071624378238994917207079; - uint256 constant IC13y = 12346141516383459727665484086270025563450972574925331732910641920207254881460; + uint256 constant IC13x = 16016709979648446499457766275433656709286518542706192775450719202127677427135; + uint256 constant IC13y = 6978118141725580588342908419919834650614229414707687290581791232662067791725; - uint256 constant IC14x = 2460509720145727619652883837556354165845594415190962737066020164551557782850; - uint256 constant IC14y = 12480583572017155822139074478020051792583435518998022982330227104337616279638; + uint256 constant IC14x = 15845935284126647984511394091107403179410700308621687723836028475366799868059; + uint256 constant IC14y = 6802610988022850330049073852589256629251696876955041180368699416871340975269; - uint256 constant IC15x = 3608520538986533549379033082470322428007088119504637299209003462374579975341; - uint256 constant IC15y = 7125340262944938150922347154445399409927865833082601906083584655496504213715; + uint256 constant IC15x = 9219797716390944961825667099203674721142312687808099384820275436914696468106; + uint256 constant IC15y = 10865565931122403227228347472211213546889210541912749840350699466993775226251; - uint256 constant IC16x = 10863329340364357981065813447263390610581921934757348839254709621258220859473; - uint256 constant IC16y = 9303767501074237621020019883109009688980715688480379081729567337958391321447; + uint256 constant IC16x = 3354616596999062839724667027150577203368900220765455079434176716850157585962; + uint256 constant IC16y = 8764597290561729887176013021159274078837334267653987238335452419253978815327; - uint256 constant IC17x = 14968062744234559305514412119756084736307973845644354760349844299511302369319; - uint256 constant IC17y = 9547759371520547375314740617427158285485474648064774946183459006586566861867; + uint256 constant IC17x = 19438343747448771910798843223122013061020575070102086159190026196358330047365; + uint256 constant IC17y = 20814112968823686335518385402647954601081959322770984903910491680408813574168; - uint256 constant IC18x = 18307132294771339489413059804025476799828377546071575207221277869890977064793; - uint256 constant IC18y = 2199179456506455466086743042037945964332715037288852243652629899356627255755; + uint256 constant IC18x = 10436210345298583251410758332602633780251754711651101351756660600389835377113; + uint256 constant IC18y = 10487355193606469848380294228330730542927976897893996915447264553015337788452; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_enc_nullifier_batch.sol b/solidity/contracts/lib/verifier_anon_enc_nullifier_batch.sol index a74c8f9..702c69a 100644 --- a/solidity/contracts/lib/verifier_anon_enc_nullifier_batch.sol +++ b/solidity/contracts/lib/verifier_anon_enc_nullifier_batch.sol @@ -43,230 +43,230 @@ contract Groth16Verifier_AnonEncNullifierBatch { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 15541712691897739747724830300506738262081962743737466099607307479041362351151; - uint256 constant IC0y = 15309799118687561062851562419208761963425326551696680678239287738208909024469; + uint256 constant IC0x = 2395789772256090657907391149545309971174185471509563219296269166677996715924; + uint256 constant IC0y = 7152602764202850168818214524944751391285085200558474414091714257983317450117; - uint256 constant IC1x = 12004066118121267476589554896909877287920971467382352176843746954792752500122; - uint256 constant IC1y = 7206764879432615417714949819409956497578875830297354760497237983805982197325; + uint256 constant IC1x = 14644842770843205417066836091765712107567556113384495891763878768715386428602; + uint256 constant IC1y = 13427718602617526158589713189211663262615428670765653743175228169292946514930; - uint256 constant IC2x = 799639163124225172098935137771473826429681232551382892742052034006481996153; - uint256 constant IC2y = 19460212393596922532627580662240966771232896727700198582151473552927560553889; + uint256 constant IC2x = 4034569649798147153338102555851612620678233038435282496792170386073220774409; + uint256 constant IC2y = 361238751928635208883843293710634898099962247596913051399516274584644337793; - uint256 constant IC3x = 18044350123603547886233505234824835771276375069050425360565411842776328391967; - uint256 constant IC3y = 1576307986547670127474732693850143662396449202007408662651643215890624339590; + uint256 constant IC3x = 19102675628780940132341735686107681308136752517966774084791125049280131067405; + uint256 constant IC3y = 19414975025228699999621841003355323411172068902711299314550577760107054966761; - uint256 constant IC4x = 20400451647704478477749132993829457719981743294312779765310610728208160269079; - uint256 constant IC4y = 13745658125866723760491826360953130191933571020637214849003136419490483471618; + uint256 constant IC4x = 17530851367509537478332569983330114465026539337625887364350249230990522292972; + uint256 constant IC4y = 17285222465906759569307996094158504963559191283686875780395130661898638725485; - uint256 constant IC5x = 21648241602395290828104735702321830963639705642419053639842578212816043889120; - uint256 constant IC5y = 10179313856185307487415998272527907126366740786494446493789947311539305678053; + uint256 constant IC5x = 12770332117609025443002803390438958377412279742334848801167522207661574007620; + uint256 constant IC5y = 19854275736738566265287208676451962732314294079621745840330697229815424924773; - uint256 constant IC6x = 3266888133196656674176137519937215957510568740238920535204121170594142622560; - uint256 constant IC6y = 581807064662727539042969124018393695993024464972930142746805292963483764953; + uint256 constant IC6x = 16921650104382042909263743819322938315215438638657307381387042250105699611444; + uint256 constant IC6y = 21223800609553876367742089394256533004036002276780720923741068717574654288731; - uint256 constant IC7x = 5782731932588123426638937014276981925622231980747761293158670051075134173058; - uint256 constant IC7y = 458530253552218801975310357315165518597333443362171356430274561658414761950; + uint256 constant IC7x = 12137060077519535484639404542858284938716134628719354463883562251672841016703; + uint256 constant IC7y = 7695903269947898406353525024834264542054966003185539528615699228567810130387; - uint256 constant IC8x = 548417836864289418463262487062535242640735442612835114756201932820067573481; - uint256 constant IC8y = 2725681563128474659874007033711084055442148149698768488522707436838354023653; + uint256 constant IC8x = 8374023289143341874461646570467112410933613032048074025993079701014309959181; + uint256 constant IC8y = 16432874524902526015154460240212460926893088090831194914276768350674224977053; - uint256 constant IC9x = 8616702659111468433065736804187627618320987671315404885064661690736085080484; - uint256 constant IC9y = 7087234574242487191257150935672471494420269714381737926190856770920046787505; + uint256 constant IC9x = 11888431444090639192902253429327281300663215057235364422049130215972239996028; + uint256 constant IC9y = 12206407746110032542681441169893590806396811743899692107495504734439095128320; - uint256 constant IC10x = 20167815511788284222998097079028719792269656943773089939369231400752958985405; - uint256 constant IC10y = 9404517860139883423870033333986444177106503920145114499080334948982539603563; + uint256 constant IC10x = 14210197014539804974249464761800705134668839033620980256084847029957751701740; + uint256 constant IC10y = 6338278894791835946096350512957736583880340903163559263130732236739407982736; - uint256 constant IC11x = 1225817578886650460062531786383208026059122829420759086444588384070049592508; - uint256 constant IC11y = 11517528485210636107743904361440850052045320470911699770542860487162122450992; + uint256 constant IC11x = 204458773094422483005350355332095742846516832215963582901632563755324078083; + uint256 constant IC11y = 895479793138269555122675923719425497841032028176849527149434900717385347715; - uint256 constant IC12x = 17670597734429577409649305751860763996652171996727040662400736475421233889240; - uint256 constant IC12y = 17738127465063980814155958209108854058529581644039192769715341582606425405655; + uint256 constant IC12x = 2116809647035495333521015880411766865806085873322260107525100683977251497980; + uint256 constant IC12y = 13711911726367235332038833898620541524042935144343618183280300838572099630017; - uint256 constant IC13x = 929501530331525055050523975910356956002521580711546356352545747027797467464; - uint256 constant IC13y = 13640717087941957737899250122156624646568466250990204802363767034434488937293; + uint256 constant IC13x = 21684464732301340329292426285367889765010955147792125234703153331402267797958; + uint256 constant IC13y = 10078705319204927258851392037674505822193216065323471908625989920060023524190; - uint256 constant IC14x = 18848953267508570424067614897329234899322972096731866125127364941150981569281; - uint256 constant IC14y = 20823402513185587475650998954455654732818037454973951576534750188849254169455; + uint256 constant IC14x = 17331722291262750341370093458124376291767817443103553473514409279184627847712; + uint256 constant IC14y = 4325709235783253636758908373652252243214004567791501481330959938149241829334; - uint256 constant IC15x = 1500916762917981320137086365080717319893029971740154971104077473585000855704; - uint256 constant IC15y = 16450861685356903953750824971500662259636788991629523821174021104020823271668; + uint256 constant IC15x = 891591245305463886536118766415139950457332615880318775268296896058189785820; + uint256 constant IC15y = 2471443246876434365130065518857418732863927364560322457724178206320242931846; - uint256 constant IC16x = 7896452761877752610994779284082958157057343429510624631113102306128671104330; - uint256 constant IC16y = 11835738009486031602232155722324145803064919243303340007952171062163921173904; + uint256 constant IC16x = 13476003053804049003703771450029193865681894448710951565284929739314786291331; + uint256 constant IC16y = 13070876159664700874578333859549466258876751862328455116460845494550851179464; - uint256 constant IC17x = 10025475874790213804420276568943869945361292747999892043167699468353487701613; - uint256 constant IC17y = 5107313052045121773802855222374277248047247722671994362633810734440920871478; + uint256 constant IC17x = 11769314701297175952614898903739742012462897803051077117856517952909264657069; + uint256 constant IC17y = 4740036360042046088214711398753546369812809932345426613135841633664050902282; - uint256 constant IC18x = 19945822408866478915965045838495679811500722732215092398900155158736008963418; - uint256 constant IC18y = 13773067490301179219537121121299653350694808450630171555491523667462586880278; + uint256 constant IC18x = 488450941796600323989944152467846464381697497686071220677350750063868501306; + uint256 constant IC18y = 6949322508683845898732619339614913575502354858457578943259372536003816771549; - uint256 constant IC19x = 4763437325608066345807300028857485637369762732123976021601638339153509382024; - uint256 constant IC19y = 5047697368859449964614854146008748593463758126500575129574554875185564520393; + uint256 constant IC19x = 8380466311061588199463937807545277636898368345063774313454150683835358636393; + uint256 constant IC19y = 7193147559922649220870304412312887279870767427818242870910226800578444436192; - uint256 constant IC20x = 19142875394805921284571633134030409276483104720336088876339486260571557017538; - uint256 constant IC20y = 20255895849223763729597350362071522806384158657022013733318416119165993678780; + uint256 constant IC20x = 8343080889116005597691085802402747097420894160121720695080318038527047643215; + uint256 constant IC20y = 3820398827303045682067588135761873658903715494931520781882152854847298042363; - uint256 constant IC21x = 2389668560232905520261975748906012326901650226854014060862917742678195465447; - uint256 constant IC21y = 1899098024654651685978763707976166438522410162625384041320426996598176775065; + uint256 constant IC21x = 17581019348186462554351398251243007264930431831083937472161920659806646944455; + uint256 constant IC21y = 5545625519661963107321592838017377921093662318854969693201536705933488779001; - uint256 constant IC22x = 6468619651569256820909467366831560164190083450291238480576398203441710278018; - uint256 constant IC22y = 16494512224582383876680610529582940807905463103020385179212536970251178153298; + uint256 constant IC22x = 15019899365033272227834770080129431828983177784035033674853481207996731215609; + uint256 constant IC22y = 14862791070894344203411269033129759399792308441548497018124550595215465031327; - uint256 constant IC23x = 6792394873949265205498601290765446513706573500098286743228958428707859264887; - uint256 constant IC23y = 3135195861055228915763886314109310178681888946796444049220917208236247667817; + uint256 constant IC23x = 7833069343980574830924119347550350317981004961989247444133666893995974642534; + uint256 constant IC23y = 18068618285555496116726700081909637563991012236615681179755092692561487278370; - uint256 constant IC24x = 9266604700268833025757822337601913610118953450980230617421387823387114321039; - uint256 constant IC24y = 684776033451391807773496036368435775473676587377239740534880627484043892051; + uint256 constant IC24x = 15721529392349171300295205905195145689301903533258809789880017130653980778536; + uint256 constant IC24y = 4437416305470105672659207587457545045516892158521361436566757167018824857972; - uint256 constant IC25x = 6905787635551118817416367019947024312211514839412196182473354054946296976287; - uint256 constant IC25y = 9073773280350094183697313232253045968953858264899014207423369407816895664304; + uint256 constant IC25x = 8851216879224204831036797102432707455186511677841863293631095726101915525017; + uint256 constant IC25y = 15165856852615791024419519831848386483349133746800152800848332289335734272327; - uint256 constant IC26x = 13306637200231533830503220504568727374426654473422967256521181232143642535746; - uint256 constant IC26y = 9905287965352985711803653987262566304924826103036042068850824213540722333093; + uint256 constant IC26x = 11005670225580141923784447745878255813748411464081858472384659933829659850682; + uint256 constant IC26y = 20695347984793328597728111582416531042237257001154049278698607423877869874821; - uint256 constant IC27x = 13975571818634919306071529987892580265578815964293765017855321641621531903221; - uint256 constant IC27y = 5300859849766378300999776680322915197886702696720082887610869004009914021574; + uint256 constant IC27x = 10266058958624888749236116936391595125406640557696898808866882703611755118776; + uint256 constant IC27y = 9265970301529750993784797907906963350499699066254922807100740790905269160836; - uint256 constant IC28x = 15461548506058574530210271008631392910173946216984069691869311297773744026787; - uint256 constant IC28y = 13706208504159530911524812257232455305935489038658391834074042379348195879714; + uint256 constant IC28x = 7642083775914108004174503942685690738227252348545876120356290913269302318296; + uint256 constant IC28y = 21728967760491048148600757000448418144335251175190165492228834000031013218196; - uint256 constant IC29x = 8730611225090083996184886288677544700541764038521483864314195520451147229096; - uint256 constant IC29y = 11247481622713393315035873003152287222935085324856747705316784771296595673366; + uint256 constant IC29x = 1545547328150775571154047252220004472922285345900191445922480440069729256259; + uint256 constant IC29y = 14452902504972676857332304681310109659515973003806298868175884023112692501473; - uint256 constant IC30x = 12650481169811028554568125651506265674590913621862836202688125356346247992372; - uint256 constant IC30y = 11452734649780361705780105715683639426183710853645312057068180259423538723332; + uint256 constant IC30x = 5526063274914106033464379027022358559686399566404269825832934166215843789983; + uint256 constant IC30y = 5028866871729015251645467658929187934826817399700638699745133974438965190155; - uint256 constant IC31x = 18801255147353589786966703415517609079978518336487219754042258413444127518119; - uint256 constant IC31y = 19893166553319303558130971297012299399136641547281031132305685314905030998930; + uint256 constant IC31x = 20755802968446898354292439049672911399394574633366385733074081350468832449570; + uint256 constant IC31y = 4377769126252647165141250108385751880934330982108046537917945010166019375109; - uint256 constant IC32x = 10511687321004525154566058994742879585718001333240678753787240216198612873446; - uint256 constant IC32y = 21035585223167373046736315494645287448501555304653780177687173952982331918799; + uint256 constant IC32x = 8485654510952531288976143124648864826827781164879444982639679678435645501029; + uint256 constant IC32y = 18248014982863648156665682707637769130046840865654320448240193872679543741676; - uint256 constant IC33x = 7272484077050364841806145255927549145744398473472937793159247950835711431776; - uint256 constant IC33y = 3332943818971710197352806450726589823168559481693067793695706760634701210734; + uint256 constant IC33x = 796918119016654045396642672203386191882529210505799603863498626902302063170; + uint256 constant IC33y = 5389026112429222284781315586861744032602430945124948070174135083875692405814; - uint256 constant IC34x = 12398213457650840610919110725829163032033234989484701088276123492267294936747; - uint256 constant IC34y = 4259608936469531783501826512477567753342186953120203533262526878892490390409; + uint256 constant IC34x = 21482580417734448005382474746931868294656288560711734023431849161247643547925; + uint256 constant IC34y = 8758079914349411704650677209340365967072071650514121311302402325735688104555; - uint256 constant IC35x = 4238837052442157737602628064961876774504833160472421163269905967426095404243; - uint256 constant IC35y = 21848250279969602266847007164039196603684130099783052248041812103563139729559; + uint256 constant IC35x = 21196887520023768249114289443854000666090119790025533097056868641356615579512; + uint256 constant IC35y = 11163820770906223781819657406911304526171086255315937449442735821397440256428; - uint256 constant IC36x = 8492386204394865359133830740481874229340648359828275939759590994351412630307; - uint256 constant IC36y = 13755056518831659966384164241356011630642775799391196790093432317593236841492; + uint256 constant IC36x = 7604417522388202942328614513362610680890878506197180316578751536559717962525; + uint256 constant IC36y = 2939843898816592041995827608122852167668543647244033836125362327274633363553; - uint256 constant IC37x = 18652871069353668812559074416592618031978091090456771959148689261399017168933; - uint256 constant IC37y = 15197528527915159071043184850412060787519053445044144817887906567947217106528; + uint256 constant IC37x = 21055542493039952584382904138567597632399079775901703484135178602266077668831; + uint256 constant IC37y = 3202701234723099433340395968552112979260621577303743256235346705427765514192; - uint256 constant IC38x = 18242990479342094711988513795259571447690442758966541403071663580322034914731; - uint256 constant IC38y = 4694277002709134888384606306080013611889134864643132473497507757053371561787; + uint256 constant IC38x = 18660117776394877335587004459543076421551688381560004333509939597346327922473; + uint256 constant IC38y = 21497224631751955168876719082526598669282935474466412149277518195501899817720; - uint256 constant IC39x = 1301764858559868397372439245835039661364048076417031411065499735289989905777; - uint256 constant IC39y = 21374552920703964634170919159603713823469086788065336308759639968042414346907; + uint256 constant IC39x = 21253590697279988266213584934257597663526201559071004305592244451012447081791; + uint256 constant IC39y = 4147580699198201544046811264518235518456472705729353553660102909635079163048; - uint256 constant IC40x = 5703909713412030602521704551948720598115811456049201510641793049756078930084; - uint256 constant IC40y = 11343360379848634277868929278610347535014796127961282265684057695864199303693; + uint256 constant IC40x = 3074166377876271187423114405408798450501344071433870195492493258624272162200; + uint256 constant IC40y = 7708809998636628500158666176103636877564604901211771977005771176809293884444; - uint256 constant IC41x = 21676266146672888828908790051178127819023353821226367259237036360300088838150; - uint256 constant IC41y = 20282295604827307954821629408550991162593461788632176338109233694336422372280; + uint256 constant IC41x = 17936739380422165530961066141621835634410103372703470365102124891394311698654; + uint256 constant IC41y = 3319043893335468800178078503755537325156401517776004960436319252692297807576; - uint256 constant IC42x = 15900351677039192970235086696274291816056092279722947753810633865422331110510; - uint256 constant IC42y = 7552633138863201012843937997990540379972533897372099813912374675845082336737; + uint256 constant IC42x = 6181292601046035234128829990835776289578607881715069428734078952804873705568; + uint256 constant IC42y = 20659229908683127726821860148248821108763455979773745563975966412735326561247; - uint256 constant IC43x = 16986114726426059742163302482011322086275381379115213583913103602213591705633; - uint256 constant IC43y = 923269388364919243684772277727900792509753326830815519333165313425426159812; + uint256 constant IC43x = 9370458627943097125026324792741823486870296591318642765771505513857898112171; + uint256 constant IC43y = 744635093409710657521097100836298421296034590699351719962500268199891176836; - uint256 constant IC44x = 18186660967945754210000520490901640298568718480270307043999757416860784824435; - uint256 constant IC44y = 2504159044950004032445503102664948854687012926668096130852117535309632169266; + uint256 constant IC44x = 9919190179032467005401788116773752131950274523318593246173607906300611008457; + uint256 constant IC44y = 15156676743850219721476572168211308795783266878815813000807439905405103832355; - uint256 constant IC45x = 4991552688486276616511273377000905780037528993680569787454736501968017275936; - uint256 constant IC45y = 20329730207244190194399341946823927144025883223552266872518685163447033251710; + uint256 constant IC45x = 6658160304528694888503292297353118357706342172059186950970098461941189536087; + uint256 constant IC45y = 10495615391756334357942944570814444439117678711860539910546077703424603304849; - uint256 constant IC46x = 15588669292822971027212746772468059587153741804272380842071129604935726444761; - uint256 constant IC46y = 13246615605370923171385971348275178771325109931221712502857728544047515567676; + uint256 constant IC46x = 9770703959972291321398343823093722784520155293056219563602442354380782964369; + uint256 constant IC46y = 13909261904971799053865612085602274072195843811412808770958493083156239535663; - uint256 constant IC47x = 14296275320715004191013745886745046991602044572941193816257113343670653624832; - uint256 constant IC47y = 2601284390982903491762982344917578099649417178108163508683943707962860500350; + uint256 constant IC47x = 14699099805952360199087101845144502503621257684472570515927877045605549374408; + uint256 constant IC47y = 11771937109801579058600259971552703976697766891744899275145646087469261151682; - uint256 constant IC48x = 16950244266549700135382898829621258093653503205489322996191500320120085510969; - uint256 constant IC48y = 6966954670688364311601206395118660404689846194634462521411331768192803520094; + uint256 constant IC48x = 17885869510164349292789332278096118972277142539705492293712451564898548006526; + uint256 constant IC48y = 4545109169361266639178498277660386987452407990741846439849677990298579981852; - uint256 constant IC49x = 1793479366619778804560203910817313900980767350800954690294822254090714032064; - uint256 constant IC49y = 1048215802761854722044182044883578100910289257829996092498059084505962374306; + uint256 constant IC49x = 7738226593715142475289014106323387430850783539465754028506077413114828884209; + uint256 constant IC49y = 3825558155040075761630307708447567757252618904885522948167015952165889092350; - uint256 constant IC50x = 13856521648827555085850487426366910290801355375443444343366086110228301059830; - uint256 constant IC50y = 535324682486169534839214155712250670348408259872174356460556327634867645044; + uint256 constant IC50x = 13022765160256860234730324498195034529870463612833439828713964216217615567737; + uint256 constant IC50y = 21116042947269976657592219719799882768034741018701711429295371558665882314822; - uint256 constant IC51x = 20532896844819862719302461052830608965671775711098369002889100226843723304065; - uint256 constant IC51y = 10165245834300535034995935060162142357012127635762461585340813984120842283399; + uint256 constant IC51x = 6709542905303492731551447866708991803898523842121926420302702170545532726953; + uint256 constant IC51y = 973019171855364947510468016123723353763361234912947600498689035591648700859; - uint256 constant IC52x = 21706945700397762273061470570984677242168625760414490349459981827557223393761; - uint256 constant IC52y = 13018625219030750006251531760542205498208625774314240956959696899549810023416; + uint256 constant IC52x = 4377659788840224343890186451065491757777232634956023112917775455976473478138; + uint256 constant IC52y = 1850899692852449692694595008456720153875034872266109331332485494714931471058; - uint256 constant IC53x = 19949734495316122589728542702311543846078135806716613800415036271605233348941; - uint256 constant IC53y = 17610569332553481342822721120848436097030885514608311144321720352640822032227; + uint256 constant IC53x = 3386771159756327107361788524766390354935217077370722959300022968317931650928; + uint256 constant IC53y = 7857332045597874237594152504713409242974006906728422493123248909774872750181; - uint256 constant IC54x = 15423868577682089147254397346746037852568986160806737601551331562387468734411; - uint256 constant IC54y = 7375518587880462511927311850962084418893297203604477887361607048862711107346; + uint256 constant IC54x = 1421692834969445473753600660994805729052845053692287147229413830384117507877; + uint256 constant IC54y = 18609313630551838360429452801373096357140216801792233767522242184676315503958; - uint256 constant IC55x = 12577671908654509512753921257679284932649171016080486414752763526622624937379; - uint256 constant IC55y = 2822986953532073626384807171487787273923093456830811642298968906173084618252; + uint256 constant IC55x = 13978573477928318008218601113539169458391367595940394780328898245931308566971; + uint256 constant IC55y = 15875161499029862117615781021297140507917790795417892939868599447991394784462; - uint256 constant IC56x = 7101901272264342721235744390437490009744607361279923026192561192184716770940; - uint256 constant IC56y = 1960330795533000366229628853474316049039025107856221183882939857657751805495; + uint256 constant IC56x = 17599803924953890024780208560357925837277038649663519647549298235135718540027; + uint256 constant IC56y = 12214206663376524107629736616361565025064669974758837941266420409614527033441; - uint256 constant IC57x = 7691495400094693753216268714788131116165195526618960887994162298184250615269; - uint256 constant IC57y = 20266934251235402524075097510808143546332698370015625975778871109777745169355; + uint256 constant IC57x = 17335726625208276424969431389237426248268647935492830693907943285327461733918; + uint256 constant IC57y = 3289878175281260049234001586256787814187887370376097434074383613004649481358; - uint256 constant IC58x = 15308904568004806838333292069495967804191763022342145474464916816147736254990; - uint256 constant IC58y = 12725832748756479321212289733196376490749108660151710901111018005353112155462; + uint256 constant IC58x = 10540244336986930192899557105894891658247221559462081332755731754117506103898; + uint256 constant IC58y = 14349280740929458865970664317299373594836417476083773003659119296944534434414; - uint256 constant IC59x = 15202083440469925507799278476974817171471136169349172236985101212482195929767; - uint256 constant IC59y = 13450805176974038818560776381803544848148900879794845768978747920698467277057; + uint256 constant IC59x = 3445354558748168865737498422630514209986714681677170733184635538373483666756; + uint256 constant IC59y = 12236672722198520778481334834895484425522585670433327627873492479254216792859; - uint256 constant IC60x = 11105808131601383970258936055037294705639455246096494991661486358952307565964; - uint256 constant IC60y = 4381323687858725316139856902510988167456513753163202489496574375897393705657; + uint256 constant IC60x = 16018624257987407702086532238735048436633839730871052173463058374032999558117; + uint256 constant IC60y = 13620242697197653845082493276750366805639621735501294846896586720245004775888; - uint256 constant IC61x = 8712061720494230564725748030948956762561835865570911224942084365139103338532; - uint256 constant IC61y = 20285562077593608041077226666405665601710539151360160642396404391092949958418; + uint256 constant IC61x = 4852688875304245231720799790138018344465306135302910776947773699386831614387; + uint256 constant IC61y = 2665155515549220127801715671149529860626595722913279875568918269321054177273; - uint256 constant IC62x = 9793790434502609829423745560658992632851959811916953980186746842770443206739; - uint256 constant IC62y = 7049665340999458484091999269052279156744379198095613680285782390224484723907; + uint256 constant IC62x = 206644070190266753013196119358273596948154028915751149974209713957558225094; + uint256 constant IC62y = 2893566180904365708982743210274393008142248092826700707846128528256538939869; - uint256 constant IC63x = 4126142035587342662096948813543352742407412826025778459020396617635592493463; - uint256 constant IC63y = 17515973803942265832645666042755095987623520928417041957879643390144752197189; + uint256 constant IC63x = 10886338539370850170526368547242768712403585065888027960150804191670033805154; + uint256 constant IC63y = 10677170532005789716661199528195847256097694201435675675982800433143366594028; - uint256 constant IC64x = 19247207862201928049665157665966019429648008517374964258403393747624217085558; - uint256 constant IC64y = 5883119913118532891547653021528280926034817697092548148689106955497551603595; + uint256 constant IC64x = 1304297074227587920378662771882715758801781845320477282145959855864352856313; + uint256 constant IC64y = 9739596217817435275328588264967665346531627320241393866282732295943251818912; - uint256 constant IC65x = 8041509421060849686321537689107142871225800893472016045323498838246681453229; - uint256 constant IC65y = 3431923506157888786210165459510810556282026588990305561706761506851510698262; + uint256 constant IC65x = 1493581648600383761799721417716407875028128277651222605703578337174610979360; + uint256 constant IC65y = 12829164639684874035650840249197742088578894077041274951334499905903416727897; - uint256 constant IC66x = 19580268285267533656844592406379164013624739067439830993341391612509642621927; - uint256 constant IC66y = 14902911267050146103685190334259509182241627230366165452249801112538718673687; + uint256 constant IC66x = 21077408101824313949986775924314329158407217026043768898835178550980002422976; + uint256 constant IC66y = 15546960087947009739450691151451450357493657042220073591625229700192105430926; - uint256 constant IC67x = 15527274115915464115840466780647508348661881376611401367550382868666494632303; - uint256 constant IC67y = 16457150041848329656504960671583325903799422628454043853964249079520392949405; + uint256 constant IC67x = 7756027090525376034848477575510699729701674747666543458371610048776574914011; + uint256 constant IC67y = 17940094617753537926088236253313418017007593869389632623037034547251466927654; - uint256 constant IC68x = 21360934675735574499842804934486737587647946913478237997427557917461866800518; - uint256 constant IC68y = 3799185647303562495398103200645762690993666519764820510890059834232915650469; + uint256 constant IC68x = 18249467853492577365842783360977361433848219827811766144944747622821816757233; + uint256 constant IC68y = 7857082655366628139466857452570269180936701817801610874945311198066397638365; - uint256 constant IC69x = 21429820736360022235130570460476701866598520552579156149951166264823616821429; - uint256 constant IC69y = 361471616885532291366819177862707657818109317339903791558184848883482018256; + uint256 constant IC69x = 13177108541067063323060694526744209715025839110611817924869426803408303114758; + uint256 constant IC69y = 17817562911343842555608279876809749835556645524303248171633666085395771262927; - uint256 constant IC70x = 4028171144463242594484910650076389944546055584021258386802730822642903745154; - uint256 constant IC70y = 14353333781585149641734409678186313452154764769422803611820129948675659195341; + uint256 constant IC70x = 13922826435799581074757131384183726433166072680430227074724260664464211791615; + uint256 constant IC70y = 19149409656120564224795979032648360435810540016648117136544487852908831474716; - uint256 constant IC71x = 16167712066996997001640295311841282891533462998152861578318014485638243031653; - uint256 constant IC71y = 4540890500480426359230206672050314265507235790009506090520239337837566320050; + uint256 constant IC71x = 8214360934575471607036236356676787586901820581585165866372933882928238231545; + uint256 constant IC71y = 5150470020982399844747702894253026635812097923466316667434263318099668875546; - uint256 constant IC72x = 11923159010491824506757683051348000555951003334946594947386901785606478040661; - uint256 constant IC72y = 2572782218313973361494279590352442403461305126205802617863303903726721978152; + uint256 constant IC72x = 11504179774490617379033779868384064630126563812312681200271128129158099947517; + uint256 constant IC72y = 5669465371214466635875682935767793484579277330398933271744848262122084540005; - uint256 constant IC73x = 3796899408203311135956653735456167417545890607362679618739784778181219318165; - uint256 constant IC73y = 363766308721047788110619408621332404986888948818292081892407097360922064560; + uint256 constant IC73x = 13880861402339442675577968947927031831320238715278284832329998671570607912622; + uint256 constant IC73y = 18736712148533694097379381827650234735370140576347674641772699625675977378641; - uint256 constant IC74x = 4898407241626997455459623174269752843105586315823889518182507405465293557808; - uint256 constant IC74y = 13252560933289697433715523346383499877463019419230616412590992686705641632815; + uint256 constant IC74x = 9976499769692929678766991549331377320772482117381259526428598326702854950139; + uint256 constant IC74y = 3254382634403964695942665303485127954029952034645732860686806054512818920671; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_enc_nullifier_kyc.sol b/solidity/contracts/lib/verifier_anon_enc_nullifier_kyc.sol index 28ccb58..bd03ee1 100644 --- a/solidity/contracts/lib/verifier_anon_enc_nullifier_kyc.sol +++ b/solidity/contracts/lib/verifier_anon_enc_nullifier_kyc.sol @@ -43,65 +43,65 @@ contract Groth16Verifier_AnonEncNullifierKyc { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 2101445661096098500695499442371715160299284047295600659193099820707553551716; - uint256 constant IC0y = 10362879292510370007927168062017727280133719396001750595095720484543761937055; + uint256 constant IC0x = 14698876561449804461303997729882021907260952371773237247351870618424905795147; + uint256 constant IC0y = 18557402500202434743421667509327699668130433180507680267100677071728116709328; - uint256 constant IC1x = 143037762769493157940690903021326562009140250481843982993339451380506111112; - uint256 constant IC1y = 5850994117884549024505108566192301773206758871667705635196392926890246740094; + uint256 constant IC1x = 10315096673124106106939179877464015541281045089563747433630734344474797473770; + uint256 constant IC1y = 1472155899755287822485623918601593080126322175431196017560626340729790026050; - uint256 constant IC2x = 21813414019198417877692314192484775736547859346727104349558513373498856059230; - uint256 constant IC2y = 2522359220036345152243657054788318972655111072255771948581803079042603993301; + uint256 constant IC2x = 4718549828471262167118129364412519209886298544897104924070255804762873032140; + uint256 constant IC2y = 2446118425626693870235858534150160354950738611096739436214072904262884578395; - uint256 constant IC3x = 3642928053401683423636966839904409755796906574849977901631326846791604046471; - uint256 constant IC3y = 21342445322203542212288318163142656601643460551843210178616475323984654192012; + uint256 constant IC3x = 21626188328209479749558749079056334959006600478352590929856468086474457122705; + uint256 constant IC3y = 15194612440532844453723222235667006292477211208280265703388815099460693968251; - uint256 constant IC4x = 10005624193996015715845272947969078652505475841653860612541539286408237186741; - uint256 constant IC4y = 8904668934230071817938248601102806407300259595587825875979446618284551881798; + uint256 constant IC4x = 21632286499418536466154502977817098047119230031703746578233148045286552171825; + uint256 constant IC4y = 20346710358711358398980622967577741010653763314673067229259909065780885664857; - uint256 constant IC5x = 4252604032686906795471745181458877873145270931075368231855398520653841980516; - uint256 constant IC5y = 21710466343194080959922243660216080363878294570140318703482360573828751790132; + uint256 constant IC5x = 7224322402121959156895327483914099082655047503710038897785149764930832734515; + uint256 constant IC5y = 21118393856404811486038896243229641555605824100980795198178165543128131183359; - uint256 constant IC6x = 21301141460740028752408572822391426289464989302071188166913060202180940988455; - uint256 constant IC6y = 19571676789991163684635350354000657181719351575287433267350738257251835171196; + uint256 constant IC6x = 21884303538497305165361480357298350470834418163073305348413182296748782447293; + uint256 constant IC6y = 2012209231303492987597704044378640762775847171057129930432033451107051765439; - uint256 constant IC7x = 12031095088505961172125554815052019308363370950934499659459823010382728830404; - uint256 constant IC7y = 6869644737539853676148140674560430289067409680413722597764382512270023560944; + uint256 constant IC7x = 12000170776735120845839233682471882674667860885709786989200512571990011691493; + uint256 constant IC7y = 18430097038737398662595390367519893656805633444723681740816897875456617599670; - uint256 constant IC8x = 20163449202495063406210816242374997127502597539370613167595680071171744317171; - uint256 constant IC8y = 11311366342624928419808643428679835067737902214072968887326856985785061221989; + uint256 constant IC8x = 10687712584992611358891329816773668218618501277282082378995088664057785138306; + uint256 constant IC8y = 1091572930133908007999707377521111123274711198257843991680341565858392671006; - uint256 constant IC9x = 20698154213044287145676865513874256178804659016537470440369493061237612324504; - uint256 constant IC9y = 12576926955739265870067258776164424157413587517100533852524125074069389730429; + uint256 constant IC9x = 4477238660120726969063652901962134128332563346666853926816526548234477036979; + uint256 constant IC9y = 8041841746334271188469015358926769191086662568110335274909608274623331504222; - uint256 constant IC10x = 11250523527047526834561439432041993034618624117093627991251605415769407539362; - uint256 constant IC10y = 17907468386432017490406891338161172700049188051055797951575053338510272395621; + uint256 constant IC10x = 680451314935589060719592157754134484570812451750004236391189267768399889668; + uint256 constant IC10y = 19692641393662254934664662971931314155450187720722193306796581694686284106512; - uint256 constant IC11x = 8392487640466665715586586820304552751372406587365016338472815868126769111363; - uint256 constant IC11y = 6769196229708914020554422274469711603854641440745296821149294696298801249778; + uint256 constant IC11x = 20524349504036580280733584079975298078515581761904178098554451597645570364916; + uint256 constant IC11y = 7092881253483922387279393980519979103467872745719075202106084234733165789401; - uint256 constant IC12x = 3883805730491052680861024631760450959945162359260332304450632449880829036103; - uint256 constant IC12y = 13574781871549139653032780834396648028021364679469558695322726717428805133591; + uint256 constant IC12x = 12712705788704163746845609371108354784559047574216273010375806468728241457886; + uint256 constant IC12y = 20762476917652582900644133734668133277604531740284155986197387584799792179089; - uint256 constant IC13x = 3712095324570700375376338806022166258376894208640379288213960762053951689172; - uint256 constant IC13y = 20667719539217338681893327405360317533667499726179320338206898066726796607014; + uint256 constant IC13x = 492973289814386211040353005940821402803028948676714819570967462571279318371; + uint256 constant IC13y = 9373899976651660082448525133329106776805851352457986605157311252409532388004; - uint256 constant IC14x = 3097002507960051703213654685251518413705854628664643617796684420014836169179; - uint256 constant IC14y = 12701929720942225064139703316349909986762394364130937720922269085242517640274; + uint256 constant IC14x = 14078470564642212303763649214142197411505201581097728672349082936632241688454; + uint256 constant IC14y = 1810384058029087859501778938661876037641116899225084881782558449254764880392; - uint256 constant IC15x = 14600660667929898830470559105890512997029916614670512099159679675748869035704; - uint256 constant IC15y = 11017585299166644609325141450109253861938541098664061213432681471286424623722; + uint256 constant IC15x = 13003303256428340189514704001800551588674382425045675023935280859816889318485; + uint256 constant IC15y = 3762916876718835867321242096953394910626329551831523271129831193170990478485; - uint256 constant IC16x = 15678106707089202971157200369157139252269515864413961042809314235350595765085; - uint256 constant IC16y = 18308747354515602916311996757245707217558859904146913241865192280844067110351; + uint256 constant IC16x = 11773389293110638195708808152348517672451061278432087120398324054349704200318; + uint256 constant IC16y = 5509863291537919249355385546719937934629751403828057961104247667753132023908; - uint256 constant IC17x = 18510565052285649086504893109924312402387845770317503709170022754101172187130; - uint256 constant IC17y = 2452319668579540529914143443180602151977125142307989050494730386258239185071; + uint256 constant IC17x = 13041472034028436373149922307234983401879941791913007062256703100814092624424; + uint256 constant IC17y = 802285953016663449112540186866815849515216668870694577022570025522785430831; - uint256 constant IC18x = 6571849919808570688932630589125994276436770884363895777898406143060638649747; - uint256 constant IC18y = 9204693645690522821608807373559664233868880905201664235940525915891765403736; + uint256 constant IC18x = 8953553838957898966180099311925633818450477486142895366426410290090498096517; + uint256 constant IC18y = 1324206175540440131451579735308200223549651003800233051684910000597978862424; - uint256 constant IC19x = 2486942122466912773652128335545419024673810068929266047399593034274357966587; - uint256 constant IC19y = 14679120849869353894947197179192282119128588573415730456983400522947595480010; + uint256 constant IC19x = 17956194164809555951850634519654249315849562695822591585763027516740233600374; + uint256 constant IC19y = 9510121648939921553355364133204877787972478082630579962241421871996963395809; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_enc_nullifier_kyc_batch.sol b/solidity/contracts/lib/verifier_anon_enc_nullifier_kyc_batch.sol index 43db952..f056a87 100644 --- a/solidity/contracts/lib/verifier_anon_enc_nullifier_kyc_batch.sol +++ b/solidity/contracts/lib/verifier_anon_enc_nullifier_kyc_batch.sol @@ -43,233 +43,233 @@ contract Groth16Verifier_AnonEncNullifierKycBatch { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 5879424562730631873560665784311981595213572976855664375149709980743092774122; - uint256 constant IC0y = 13206866748476381944629292199003231744773785152598965076883128035599867853787; + uint256 constant IC0x = 10313937918103006087784866174735853954689221521812327103378704235802781783561; + uint256 constant IC0y = 9753072327140341857940641496334056679207002439635188121425876053327397284465; - uint256 constant IC1x = 15282169789980326971904550824335238386817848748909013580290859998714153769728; - uint256 constant IC1y = 7499960709101510675913166010109648378980965365673629087882118678621184270437; + uint256 constant IC1x = 10837018114391433120066015637353051698266626985828802127041804457099401290031; + uint256 constant IC1y = 2982163603577493555221849060777390590811896936712935986581972594710386755515; - uint256 constant IC2x = 3578459586325224532056059944917518839394519128400975273626895213233025670336; - uint256 constant IC2y = 17272773564081154461128353182642362910499205594170594449333417484297773873573; + uint256 constant IC2x = 15809818997500549555531508977476359226600004177863142328042033014949187765336; + uint256 constant IC2y = 893697954977294279712866797222407064519597900874144269386491184084637152910; - uint256 constant IC3x = 197034807531520429878206256088701311239327312308013073003098805299375721937; - uint256 constant IC3y = 14059242108758834267366855334344521020229378447514273990452780096596776533082; + uint256 constant IC3x = 1760167260149703624757217835400479055600992852300456860337917837942892262759; + uint256 constant IC3y = 20185909825956660798417393594301342013466827979188768761589718996617773511457; - uint256 constant IC4x = 18305198359557417602536694816075366899249880978881100999493998698728306888415; - uint256 constant IC4y = 16089041801360961313466420448295896469125318371148849197946752990398785394011; + uint256 constant IC4x = 10691882895398275550900655832910996988739466960548192244571784986487873504768; + uint256 constant IC4y = 14211404856310758390589849011530823993198346442063943305477292273161422898263; - uint256 constant IC5x = 11885137273538506752867177832041138715922297357352324574957641675330052864331; - uint256 constant IC5y = 4067584364717025687436527377627439802168472956336329842601632426166677343993; + uint256 constant IC5x = 2773130435727965146080581237546937160598623793132633421477533527595027153051; + uint256 constant IC5y = 20810657347524001161653585450420346285370517508265877765700441062076754600077; - uint256 constant IC6x = 8148601523579419011847384792699764594853373827476934294033693993504233772399; - uint256 constant IC6y = 16057316536979538282443076509777020106755449805698416567876341226059866009954; + uint256 constant IC6x = 1161242845389465429766318711786895320969461646902204275121439410269004471138; + uint256 constant IC6y = 18454796860018756806404816055138940543472952037712966637529624926504184509171; - uint256 constant IC7x = 12037768234901220602199856820113797877041049700441298954046885550050522178585; - uint256 constant IC7y = 9363281685682409209234935650420670943610610069381323832800642807907230747168; + uint256 constant IC7x = 4248017624475625144715690241478466683332800508897801986353687509024604901793; + uint256 constant IC7y = 6122123222639915863223012216736054719278693831923872494251923475579926931951; - uint256 constant IC8x = 14646872255043112970272036075814269541536317995327049583097986395960777389618; - uint256 constant IC8y = 1621333485711245705745205228004099054244081268449139556613989487296116782949; + uint256 constant IC8x = 13702868573978162176569367782261488955675128368488232675020348346841145417649; + uint256 constant IC8y = 401950476018843796662444151014082486929844430835241644670932038434554699242; - uint256 constant IC9x = 19775316132999776498759542735860347212819060939265685412419414428073052134627; - uint256 constant IC9y = 4608687134445774707008293385324355359543041753591954775503016630583162119042; + uint256 constant IC9x = 9295528819539531989370128536259187619076160101891771892284414452546586024325; + uint256 constant IC9y = 14024992635014569270076190441387074919891155775520316921658035972640774022153; - uint256 constant IC10x = 16099052095232546719802260030800595737783250507579665289906231650137389523504; - uint256 constant IC10y = 7893724112620136209815945904734616456952347632915844876449990186798682877525; + uint256 constant IC10x = 14651518724159534834865763954533532100335352773559846970214783908239631060004; + uint256 constant IC10y = 14716291061967925702256622117534751697918787244601125408716130783518619404154; - uint256 constant IC11x = 3056912874178986288838663096512087996708267905193213375559390706386163682872; - uint256 constant IC11y = 1514638771682044463329095778824526109809967853966651241302585519766107582756; + uint256 constant IC11x = 897066394608916572506480662684479167375023594931057409678688013532607794469; + uint256 constant IC11y = 10097224282069070967294119398237082236327606621329527219351408735954090900594; - uint256 constant IC12x = 1404092927951756013597895730140839291183947294471377019561596136610998130440; - uint256 constant IC12y = 15623773051151761186326761145515739573945050760726055768708771248158561498228; + uint256 constant IC12x = 13137335621153465871927007841510867610970534834965566541496320309067913014991; + uint256 constant IC12y = 13767457955744567466456543725605066192141100331853456918050474254564570906320; - uint256 constant IC13x = 9576441620339730381094895314906773263527201645034383465123334083291711765836; - uint256 constant IC13y = 9896797057488658161314137120206713724873513455207329772040002436841046850406; + uint256 constant IC13x = 9185063127824805938140034226708029248503889236459251654915117260419716651906; + uint256 constant IC13y = 294265216701767923839288271762897793399575912527132858100455857234841719930; - uint256 constant IC14x = 145601496683190083773803860467138899082020258784010268473738963322069542566; - uint256 constant IC14y = 14007087225913531300142045107727112841821984494863605846003202076964654741568; + uint256 constant IC14x = 20085932004072708607054119141829894114919994114571635227359304685166480261595; + uint256 constant IC14y = 2118139544423683694402644389169914385791748478903198871842020532666042669100; - uint256 constant IC15x = 3372190984533446456890699363025326068027012148844883516925962272413560151770; - uint256 constant IC15y = 18560741302432737159517852251417424897074073126740660059701111852146993979497; + uint256 constant IC15x = 4887650394951202709891616362236402801333441619841654173661248101656314090253; + uint256 constant IC15y = 14907739530638999243456819634668087350467018399995057982143890060442809743822; - uint256 constant IC16x = 19912215255388771485574384336706417867653797205425596845949286583447854648271; - uint256 constant IC16y = 6995001075253251586380762968020241732919934674913639077980014146525990206684; + uint256 constant IC16x = 831789844018467110564529285981118438766993460808608012864871642227448711395; + uint256 constant IC16y = 19096168764998021971355082100591441985982815076224212464951175587180889872830; - uint256 constant IC17x = 5483240527666558072645510304792558005910843928871145092828007065898455887913; - uint256 constant IC17y = 15440416814938865094565024254546293466987704590811833158431184937033918781241; + uint256 constant IC17x = 1208505121302057171020675426556633291369342700439558144299973455671196838640; + uint256 constant IC17y = 6175547253764411855411324283563965478122004378396766171641686695612924647544; - uint256 constant IC18x = 14782297685341202881645774424037665327184105702945875674725280843137690447600; - uint256 constant IC18y = 1620384386022682838962458121754764532173602828878779213885935960925184731325; + uint256 constant IC18x = 705815259856478504599910681434122344166939385201234589611934664029642219852; + uint256 constant IC18y = 14804076456123822871277956563749577226773235274203708508893406009369381931813; - uint256 constant IC19x = 1171688358275105292783738617724244003790699210255866338784729067962221252746; - uint256 constant IC19y = 14281912851508071024054994668242637687301935221249367382342439540731810886364; + uint256 constant IC19x = 7806882928722465088107601788618158485382274393316220103389925942002851962259; + uint256 constant IC19y = 8592196309012296147907691414616176025419819257905158585826427513529836835686; - uint256 constant IC20x = 20347527434246834723282148235319426299066672911747060033126978550391175449445; - uint256 constant IC20y = 5303220787428916539470377959086980264518321061473367573230745434641333240835; + uint256 constant IC20x = 12659686801893070697535063125683773487303137847017519696015864622636505540559; + uint256 constant IC20y = 2803624389949775226020660108586362141564188093277775484507817112369201850239; - uint256 constant IC21x = 19179731889554897057776804513279793130466426954972425189219331958526076016887; - uint256 constant IC21y = 4445528599037546946777217693890113870365663777965295532448953807555220602911; + uint256 constant IC21x = 4173082474247027947087164776964754352022620830671173849255306030963578743875; + uint256 constant IC21y = 13069857466013971555026273686601123384113982180009177354512065772031416485737; - uint256 constant IC22x = 11806165497541944446376391657387565359407103613171987109320808599242802716209; - uint256 constant IC22y = 14737637212042438668460307240543825758060318730491247469945951452640347707548; + uint256 constant IC22x = 15147505627892888628906150579619225365550496373644892686880583066036162566090; + uint256 constant IC22y = 21181854477929617880426505403726773669270295004795649186884663042368536585805; - uint256 constant IC23x = 13851363581844588948052079333589972202899416739082046495735113810033698241162; - uint256 constant IC23y = 7198459307783162593588249279195591466526828528293563672399089446016016248828; + uint256 constant IC23x = 18863705946802530900553225268001444866806197021236439401354970713406189145054; + uint256 constant IC23y = 4127867810445089250563993892543154876702695395769270442714195676610603494135; - uint256 constant IC24x = 7323586796583915538517203253475425596568875649851764668132652747576897356674; - uint256 constant IC24y = 9729449148236190158990275233658468848836238158974702870478357903438559769579; + uint256 constant IC24x = 15397639017612493934063704442563213431518425591666183369626428553085464859163; + uint256 constant IC24y = 4291106754091108077823000816574790575263904072011853641461379425441455621847; - uint256 constant IC25x = 13062739373677177356285877655756540319700401112341451458289018760065571317356; - uint256 constant IC25y = 6988216302343924340288284552829649507771461236411942619714230419889112890232; + uint256 constant IC25x = 17390132629707385928815064735308457125475727726167446507030805170842650394508; + uint256 constant IC25y = 20896763419196123991227196403983663132656893264515803340809573675452852379568; - uint256 constant IC26x = 2464215550608163570038501219646000285436003972199334545314794238287607467824; - uint256 constant IC26y = 16620971382566073073128670286766287985754203816896866852368294400912265894110; + uint256 constant IC26x = 13461271829631669834803539751137343159004542874559195748823092118270201084724; + uint256 constant IC26y = 2729008404271921836123381319633233755724309244741467349445146889554365572892; - uint256 constant IC27x = 20940040750330519406230306223206959132162605675817097713078739721349293057417; - uint256 constant IC27y = 21287713070208274602768525363434407364711158919815391235905594775885332798341; + uint256 constant IC27x = 14602311746837159687451204187512146002846595010836650318097447380356135380378; + uint256 constant IC27y = 7720727360532787685375360924388144433072408339548663818312006584369927773425; - uint256 constant IC28x = 6401729451874095801187728414284491748130061433879980220338030275579186819738; - uint256 constant IC28y = 13937574244579894959948501614829150203297890136818974290229078781393132607873; + uint256 constant IC28x = 229483178419198916081647047738959261404423763621132035795810306367615982383; + uint256 constant IC28y = 10370672370162120462305012942875922874382588812317371373171701200828836513722; - uint256 constant IC29x = 9368391468110987658570378975892753259540418036926848523586290852343199284773; - uint256 constant IC29y = 107729344928419472941901678296319367646979433201813012887361138123247414839; + uint256 constant IC29x = 9544668441293238664559124142133075724287352756990702009122269905175679249518; + uint256 constant IC29y = 7638805138093117181142650576991676543320895935868430181584310124648966125944; - uint256 constant IC30x = 2465894890831381993380825656243358825257823266694928961517668757124215052934; - uint256 constant IC30y = 15873045630070953074394329139768616105680399126773880505061342476653353822689; + uint256 constant IC30x = 20074876114417271748711207825247144768633410292828524920700988903690315408490; + uint256 constant IC30y = 6892589013608461855020275071724097064741310157307567806016718681380787653203; - uint256 constant IC31x = 7084362018026161779770911586531273766785690156040435490420195876990482099784; - uint256 constant IC31y = 2394109909281977185888124670377335145609878915972731855891616452361034008333; + uint256 constant IC31x = 13906178102146977145526538118887437955796790170333149837477330438577620407095; + uint256 constant IC31y = 9681348012621238562403882464494819950616528879027381711013987832201952273033; - uint256 constant IC32x = 17050076019156816070944281280708943910838920040776857008320640503046547150705; - uint256 constant IC32y = 15441033341296752528073976522603243961612433476509181204526290320086756678144; + uint256 constant IC32x = 18119439025312924276714212538961039679573737576000491440803052958595635807660; + uint256 constant IC32y = 8663052687644818519156046549466328762101970713600442063692688469854959385377; - uint256 constant IC33x = 17007360840996458735533259298276500721591653279705741864746192509196970296979; - uint256 constant IC33y = 12686223349904100427859931074755256614188491863578850524425378118131427547603; + uint256 constant IC33x = 1962788241364829969215672359881468784221059289045840900001773618114783221518; + uint256 constant IC33y = 13590518782283443971098101772742986683657333997545134243755191767962819021944; - uint256 constant IC34x = 7174987464014142375128567768481998931345937721829236042612567921367171113916; - uint256 constant IC34y = 10609882706640379435056873300851937306890039989866004929634236687903425161370; + uint256 constant IC34x = 20534871837854314385218612865599447111614933027029207741212867283460435360032; + uint256 constant IC34y = 7374915525179321170186253193153518197937230676073989159450912184783997703575; - uint256 constant IC35x = 20885845815333350431275596172977175238706110033489472890774307126717679622248; - uint256 constant IC35y = 17135686419293960728794078095089698333457463514785430109646825105502189336669; + uint256 constant IC35x = 22087197757871411913364500064256360023797228245258146582804731355148921653; + uint256 constant IC35y = 1690747599899033892164634479999064748874008856218971439514983095899656117848; - uint256 constant IC36x = 9664385680491244785981775913431166433938498751667358805274275141467748961484; - uint256 constant IC36y = 16332287488121385056121855611920427331672197271015405247318684627848158882262; + uint256 constant IC36x = 19083914424852743009301799460534237305132781266532551490627209299886627635638; + uint256 constant IC36y = 13898780717046843183073003695010437483034113782415892945708925616136576409116; - uint256 constant IC37x = 15913940110854022852039504331149734321941602181835159950530732042560603305642; - uint256 constant IC37y = 13777192189726860016802262305494521208478001078062908762352000876574019828737; + uint256 constant IC37x = 6261199254357675464834466715889580463835407270653322052854684522360114963845; + uint256 constant IC37y = 13498465822082235035654784814881572041225892700756388001345051915465959092367; - uint256 constant IC38x = 12185388915386862382750652679425907611744048678894608940766319281177016330242; - uint256 constant IC38y = 11388932634998818972372804947505502471386893327502266656159412742925186744156; + uint256 constant IC38x = 13114467570210514347828866843835409179061658737618140045035535922105188297177; + uint256 constant IC38y = 15711821701632781082408705911513895217955807785121599610712064678585510622840; - uint256 constant IC39x = 5318225103964474198489064177399855799456337524169256962784459861800216008249; - uint256 constant IC39y = 14693450832931138489723451342673318007939221559303114206375131645927124667178; + uint256 constant IC39x = 12765221071082623312748649464096908425087772687317749701981333851199300696052; + uint256 constant IC39y = 3085741910529799189161704689380723313090458505927127600773040769820828066530; - uint256 constant IC40x = 4539243343942623689570251191768100792555822101624054774825384133860358252096; - uint256 constant IC40y = 7000277072004524055112142174982168227316352091208263052411492677723204147201; + uint256 constant IC40x = 14488651106961091252713191339821686331690265541174193406168014880039025243935; + uint256 constant IC40y = 13373589255531052783447231567450160869910165989726956419997437051536739152759; - uint256 constant IC41x = 6570604828233255163987182543549279371016809764127851071270147347934510731037; - uint256 constant IC41y = 17877458349499320502633124552480378264058983829327733078020944292262113498032; + uint256 constant IC41x = 17623532726389362638743747218943070917686469780066658888608169185048751986873; + uint256 constant IC41y = 1734585663781958120577949681609293774301860323250734389594733794082124063505; - uint256 constant IC42x = 20473872403685799935913837068751302263965756852764538003563229844964853952896; - uint256 constant IC42y = 14453693115236959093382101734403849518452527195272893059887284625808299545272; + uint256 constant IC42x = 18750136202647441882177882506194836757340549819684694728404507868802248827811; + uint256 constant IC42y = 17051251596307648854886334588245132863180389442545962196428389737424847768240; - uint256 constant IC43x = 179332133019483352438736556438835523968308233835571076021869431262538088841; - uint256 constant IC43y = 21084723578643159210550665732319238098045251334026347455884481703971893467477; + uint256 constant IC43x = 17134125084376953526560762028711688554340478079630644774706921442931468292188; + uint256 constant IC43y = 17487956849254220380690899952010618159329214005349534138847393001651490355094; - uint256 constant IC44x = 6519245332321709834372618981635946116314695901293520552659744932664932571858; - uint256 constant IC44y = 9553619290856814915870116705308451598280045588238540889066732336668200195537; + uint256 constant IC44x = 19776954563416952565040265199583215126536787244291832752178492282008096456357; + uint256 constant IC44y = 9663857239417764795877942262673110141621223310083687798387590082923999684748; - uint256 constant IC45x = 17098401875622299082871013024128477847005619368976977771475382962032361024522; - uint256 constant IC45y = 16711078716343061402442750765152909900789642769078913703416407681486602210531; + uint256 constant IC45x = 5482620851600196061572722772001805503669278316682329381320988603063560904468; + uint256 constant IC45y = 19083781146427254412715413977985107718663314826807313788826537441916769233950; - uint256 constant IC46x = 6937301436998009285639202261617257662054184175035299414644515067014280276964; - uint256 constant IC46y = 13412747294496809883486271133731861953691100148664645738700749132634631608997; + uint256 constant IC46x = 15388514075712586988361437846508369259510761518249007904353908445825934439063; + uint256 constant IC46y = 14020162231858578424303954541551144828122598322771731694285841517260100678801; - uint256 constant IC47x = 17251101177466634404443311467132387586379227953585655692707127242790857814231; - uint256 constant IC47y = 32257460652713777703856951582453790239735732365781343371118959671852356494; + uint256 constant IC47x = 7411582564938235693728793082095521683162492938583542778483698764411208428521; + uint256 constant IC47y = 10985863614486140778247973734629579611596367463421990350027178860274038065810; - uint256 constant IC48x = 453359389862300317138205574315956647398789221013682535590200718760411858323; - uint256 constant IC48y = 12215660590080857007159353422330437862387740196299978651691652936335774702882; + uint256 constant IC48x = 3086711053627202075497155659948308958961593994589424734969003972992580928224; + uint256 constant IC48y = 1308108368119271752047020758564886576479125695613240891994816873161154518982; - uint256 constant IC49x = 13636743361866170840377237612947726735204038302483096074368054786666685953195; - uint256 constant IC49y = 1404676530495469308352138721426302146045719996446356694900958006899504769898; + uint256 constant IC49x = 13376630728764304793847303289345292097872439318377384681086148686048597499475; + uint256 constant IC49y = 1065032471060074348823801207416904241590053563604059711028706068831925727748; - uint256 constant IC50x = 6918788721383830371056271655744737593186437739010102936644481559276561787888; - uint256 constant IC50y = 3145930382218912939068735275559282673416206862818243206096217871999892204055; + uint256 constant IC50x = 2735452168659935946199744544246970654764178566813465771818997258221879500013; + uint256 constant IC50y = 19271612559467821850243768802571301539757276856686145277613342675492085132895; - uint256 constant IC51x = 3130812576532245412344213636666430939233954508715036438531282599785303888120; - uint256 constant IC51y = 12638671175273949730705239111814852209407283415272117295269734572775765002752; + uint256 constant IC51x = 3354457015282383528680353935209303953518352266581864108677102220325719845319; + uint256 constant IC51y = 20814253832340437775657331612352211768448324386007096883152207107867507050440; - uint256 constant IC52x = 10685875146445011461742284952763738571177731891982079198663348694402647405887; - uint256 constant IC52y = 8804518745723901478761359698953547104817786749784981253214284229160017198613; + uint256 constant IC52x = 20063557255279355975459602339566236988441486829551143065685158892194087689885; + uint256 constant IC52y = 10809573717799729256403107492671248907855433442083174510083593107529867209057; - uint256 constant IC53x = 20356422202910078499466233407220602392996353698947129037914752294314441521979; - uint256 constant IC53y = 12341505800666039726647642369806900907171401046256443281976478320185405546510; + uint256 constant IC53x = 12260609638168298575231775702375231703144690210585339570382899742208896490486; + uint256 constant IC53y = 2071788231520481845955721553674035873820955393377418392356830870008893327655; - uint256 constant IC54x = 18888410617119335703265049400236908967880231581094392176138244827031551448084; - uint256 constant IC54y = 14703600171645145074092717976923536856751011588829788080513083721549359490915; + uint256 constant IC54x = 17921410194830093577901411369814136384301701233888473814720579646104980023515; + uint256 constant IC54y = 17204900238767558417250557338513251228466566378260228102186314496273472237824; - uint256 constant IC55x = 9139933829013975729932767940105346648472763059585218042515535725324925300708; - uint256 constant IC55y = 9035126453163676347404515495522257784660517669211308097846825350810671514050; + uint256 constant IC55x = 4071242372731092581077592319103046145875386034760633267487515477665475023799; + uint256 constant IC55y = 4176907233107974514771707368309109412521406988056008334508055651709912518501; - uint256 constant IC56x = 16805216642060232239806458278045945563759453156092815642832654202399345331469; - uint256 constant IC56y = 16195117201742272275205642165848969713997209938681512172560555859793361066641; + uint256 constant IC56x = 5960733674644083032761231101830108412482294617239967163544927677462082400339; + uint256 constant IC56y = 12272930515417026740138044206562579043542586380301331831929895670728239257785; - uint256 constant IC57x = 14432795835860635317192599110876979776021227976713244509387348724736478965818; - uint256 constant IC57y = 2261277026432232749652728598112671195687697376372442265420855576717426239367; + uint256 constant IC57x = 17466341931284301039095423172060818653427088187827448630546255413551702906684; + uint256 constant IC57y = 17263795429248257090391746682983113392613907639611686509156442782302769300098; - uint256 constant IC58x = 18988365762278509991919793866822703031767326961150015214334532923046884467072; - uint256 constant IC58y = 19316032093341265221242837019522075912460038712742656856976255161022717799293; + uint256 constant IC58x = 5092370487933081531717185519149484554456955958668569667763286660905626521765; + uint256 constant IC58y = 3371832118185923623335577951168768826867203542978491901702482622947593715567; - uint256 constant IC59x = 11599328628785806782044241002749534811867428529524396134455388421901872046398; - uint256 constant IC59y = 14619917552527905729476568744185523912015434998642833355371059807619892609155; + uint256 constant IC59x = 13415987051218630217964153050480916340232292900161046028900284303735774340407; + uint256 constant IC59y = 10305489545987842920567605933552607804913575592785081179991183825780051400092; - uint256 constant IC60x = 12970497412633149236620211657305192135277913186555572451418836618314360759077; - uint256 constant IC60y = 1535577522461044270097258412071009752049795294677712965767379674769842237874; + uint256 constant IC60x = 17940307213339308497671319983238683964362322095896993454741083899462492255315; + uint256 constant IC60y = 18271383264074052148496030032736674585762244059002596193724051182800244508642; - uint256 constant IC61x = 16308302680176784246305193447120497869389849465306309331472801130297223731250; - uint256 constant IC61y = 5045808378861381077608639873267624614673859039956914189704301231382082230903; + uint256 constant IC61x = 16991053919262557091901098150018434740937834719308503141914330730786773170256; + uint256 constant IC61y = 20606016313332434548940825751946934903425454661914289056789922846123664022019; - uint256 constant IC62x = 7614300032801510129936567013327252517766986398776187358029812463847907675610; - uint256 constant IC62y = 843028173085863976591548286083503526126799553429854908040003115547529382055; + uint256 constant IC62x = 2773384912448202467447623559098886014023491576018207407344823668038455109704; + uint256 constant IC62y = 19356497177579844565676818772361630937943717301472463052536210987360776343744; - uint256 constant IC63x = 2305356977905353068532348127807280458408372305687029871425764875582080747207; - uint256 constant IC63y = 11369807553091069259993055000449612405152154303288384321485662380454736384661; + uint256 constant IC63x = 10690082878429067707363340049393513126310015201943451552509583867384555834567; + uint256 constant IC63y = 7852901504539684688588063862250228659853784519607357863771427939147375329530; - uint256 constant IC64x = 5893655752232338928880238258827141723569138756601823772221555929721274837767; - uint256 constant IC64y = 762627208092203787014413477906318870348178681190360427769983760118925140877; + uint256 constant IC64x = 18146210367726352408362522338418342636333980081829763437457944796504776239805; + uint256 constant IC64y = 17249846635501505198967242599497838887363379297529327700118140591078987301721; - uint256 constant IC65x = 7647050923225457883297743290621393989245647154580932694210685595827869846975; - uint256 constant IC65y = 6430806084903190813114000641169996717167510218721465751246980030700445398359; + uint256 constant IC65x = 17479503946561865301998563711134568857984399570404516751293923963077270622150; + uint256 constant IC65y = 11690562669373466081048904560447993403270177845457694217478038019169513563417; - uint256 constant IC66x = 10705759571794772559379223851331014817700674885465595035867220237046106842609; - uint256 constant IC66y = 7575242100365466110879455572056523744009175131712325621201550128707014694573; + uint256 constant IC66x = 20259465703600379813695651030943148388887273390460946588437588614346250705407; + uint256 constant IC66y = 13855508531163836076698235874206199690679880678441010351981194795486805890659; - uint256 constant IC67x = 19335371568205325600215177798281256377744361599419598912087908330327748044026; - uint256 constant IC67y = 18744946889655449235399670789159468543539893777461000723720969641977783074229; + uint256 constant IC67x = 9537855541508365904426098570555577176516265042362423331608997846681512352017; + uint256 constant IC67y = 4050137933923913523930410459330824132023073958785039880722863132197795292806; - uint256 constant IC68x = 9767942356930193944620098079884247644024369691632397734905144035492042213721; - uint256 constant IC68y = 11085556109902571980824189630955599575123617802526024300718206179448320548625; + uint256 constant IC68x = 18477266214747069066579605879985538554063689026773173407191269192457885598071; + uint256 constant IC68y = 15692778841869769715394044391797741644313343573887154899375683675754308421990; - uint256 constant IC69x = 13561415355142249310381619037303986562854893588893292551203587367077511859228; - uint256 constant IC69y = 1464204294678453347403309758878730755684248437324144097986974213671657291740; + uint256 constant IC69x = 267657976640608725503578835358616085361488890925140900780324117659425095169; + uint256 constant IC69y = 21326183409624056892467386384637780641825763918578645116062949055343030691462; - uint256 constant IC70x = 2978997668350654766587871166804311940266365978582703006605099063381084149576; - uint256 constant IC70y = 4691523802837523050382298118755178847780158086994967423520861950486681484572; + uint256 constant IC70x = 14444981191847388378719276983082156812268097022649537494885433675380261485569; + uint256 constant IC70y = 1278303898554549990672947189791094410126969154493143627216482094085031677142; - uint256 constant IC71x = 13787610941587889897421513807604767014830351081556468843341653766152135431648; - uint256 constant IC71y = 799692903698551254826261186128856317901438765767986583443960026939465662552; + uint256 constant IC71x = 19701129734774512516306119384677585189583418191350415810496945339445602054368; + uint256 constant IC71y = 18050182036419504373226356277351815931854597830380496080310922989852637365401; - uint256 constant IC72x = 5657017403698293692969857796776966712277738573977778673163309275184923732657; - uint256 constant IC72y = 13494088133970364611964768081664124413588123681546171311645509845722766195409; + uint256 constant IC72x = 15861414578950452710119253691076839713380558292828496644823788990091917260312; + uint256 constant IC72y = 20424962195025289878138326754141750012339648334054211016393546372285564527635; - uint256 constant IC73x = 15024370789171219079614745803857855731467108973725111688470085615714055290512; - uint256 constant IC73y = 5751357237078772693350680556024857842294310641081411422830969005029413202669; + uint256 constant IC73x = 1852684271408208679708470635597536454026990507559184798381811913163594717388; + uint256 constant IC73y = 4128120367283109943933810364400549436641631181209593133104804735319230680237; - uint256 constant IC74x = 7767473419872803360280996619556374816181543250685563965702004358978764765995; - uint256 constant IC74y = 15787806098561035204238058185216611790078178948682839778120573240231960752797; + uint256 constant IC74x = 21248622990585165717462010311073484599579461981110177803480331793581996021461; + uint256 constant IC74y = 19778789799733401347212636280359087298050141470087467879271492815486419623855; - uint256 constant IC75x = 20801429324948292817168863560873473171225815932214644882221971484645218719171; - uint256 constant IC75y = 32314334472142699140647959677929936627127548500320734326413014995862964849; + uint256 constant IC75x = 14422265861428199629482796533127532737821139205192117395380066453278625765446; + uint256 constant IC75y = 12832929629708440451802068414098867830648916491757676850621113336459457188984; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_enc_nullifier_non_repudiation.sol b/solidity/contracts/lib/verifier_anon_enc_nullifier_non_repudiation.sol index a775c34..8758c6c 100644 --- a/solidity/contracts/lib/verifier_anon_enc_nullifier_non_repudiation.sol +++ b/solidity/contracts/lib/verifier_anon_enc_nullifier_non_repudiation.sol @@ -43,116 +43,116 @@ contract Groth16Verifier_AnonEncNullifierNonRepudiation { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 8057537538640622222416842419905762659147748243137900544099061706952707594111; - uint256 constant IC0y = 8731981744072173739134934379536464047347956448625887529218395527245367273442; + uint256 constant IC0x = 11263888196298953001191938443814296059746753093884576949719457783112627152410; + uint256 constant IC0y = 13278820627633995943310174140903671810959740197422779805594980235302425745604; - uint256 constant IC1x = 13250391499801206058752325385748725651438580685948497755705985174286533588176; - uint256 constant IC1y = 17376470924583594134721848963606099909955670274886726224341736312004090778629; + uint256 constant IC1x = 5211042244685257518812830048570250608140559777932171501360155047026426763150; + uint256 constant IC1y = 17971687091520239629966740769789844601045096179849728137420386395797639764454; - uint256 constant IC2x = 4137078207367155783079430878165837975928656616188358222976908119972289100967; - uint256 constant IC2y = 7570425245107981847428823663996045482214847700032537926709137463962373297602; + uint256 constant IC2x = 10462419820040311150951732771471668512870121781768793809270878604362013881399; + uint256 constant IC2y = 20549272914063171912401373392896346258161970018208100109516639080254874585453; - uint256 constant IC3x = 21875113754814476717668388767642541716892288132274022391202777610333680464764; - uint256 constant IC3y = 12358447610442788224082654939901986616533104883915337902865169052070517094957; + uint256 constant IC3x = 5841742349714527259245828894358710494855544628700974657688594033021774540228; + uint256 constant IC3y = 6441581403795492150395874326814411581235847030372027989941155570687174339564; - uint256 constant IC4x = 19543922092817287680456874357828139195532654968788246826589202752488873066566; - uint256 constant IC4y = 3949253493376987346277103901185964169916249223261456862684099340595712357824; + uint256 constant IC4x = 18496303702393801030722454696457427639449363010264073216952918158424570608835; + uint256 constant IC4y = 12069337960623762811034403080143210508974746733341434393028093609981393009420; - uint256 constant IC5x = 18181183110903921590699007561097924430913394008585648794852924143528933317932; - uint256 constant IC5y = 7711997087094892385912414244603757930043066139296400501341180882618675044246; + uint256 constant IC5x = 11750969644522980776414296014456392203727202445113265173285015464698499336842; + uint256 constant IC5y = 11180060673818888564315982095364256527821226252019780345068347814636777468160; - uint256 constant IC6x = 7137240539141442440306085053950553675579764927177162142043064175086488616780; - uint256 constant IC6y = 13363847928672326829000387655005462347075172449243251119285639834404359501314; + uint256 constant IC6x = 6231985268974236216216296540923889864403726558914240342973902801793013309503; + uint256 constant IC6y = 18873153777488865213754222993559351660919311148474429328428690375954715507096; - uint256 constant IC7x = 20400880282477659913345317263705469474333828382164139098386218289000985798631; - uint256 constant IC7y = 763738122430876330371552476723707061095772018063988184775433489234424052612; + uint256 constant IC7x = 4761451869648636220918296566024471506851548298314229172496317816467070672212; + uint256 constant IC7y = 15603377266261425283104616470408535626420679089607896850803713326508158054190; - uint256 constant IC8x = 4166322176734392072842315361421643372713101222189854399845407462320580945822; - uint256 constant IC8y = 16072436503992646710546099300833223000623825738116507083014812241765619517875; + uint256 constant IC8x = 12099328579581963214990361140114341307485363400989267077399161892864179754921; + uint256 constant IC8y = 8012561226384638858487519711997272290273534887056684225603398009091810167490; - uint256 constant IC9x = 7833725746847772776634744179268022000383759178460763840791500002087723139959; - uint256 constant IC9y = 8720331182270406067524683394619402841532011768113389600538851900450934116244; + uint256 constant IC9x = 230452375625053365941131876649076751304064866692012851146167498012633343232; + uint256 constant IC9y = 19724267244381482952372351763158860863609221332480966803448678214443388575799; - uint256 constant IC10x = 7280060257745141941819875132568570724442349310306473121796057502123483619837; - uint256 constant IC10y = 6157960360053732092509642253477838513518372592938360299331275658930593155992; + uint256 constant IC10x = 5499702353091585507007997817078700241646822387790018492707078947324648104203; + uint256 constant IC10y = 6983033040093100241972563820432930713529739252934793211363917170019487113840; - uint256 constant IC11x = 4147125947775185370048279958510311467897346628909911162589227793729272699941; - uint256 constant IC11y = 6385255516740552331279616186006407767930976562596172178800449481815679614189; + uint256 constant IC11x = 21315763532997619662255447025486904652194476327848826136425219212518929417759; + uint256 constant IC11y = 5750894037755684161640063158693923309930272924602041987444362724471374105825; - uint256 constant IC12x = 19512803346925299194089641114698441080391067211653901079526218381910339362615; - uint256 constant IC12y = 1077393081416496492374337174355906633090027938414245040846552073346429490004; + uint256 constant IC12x = 4256642811355025077525708257430591309319045719449956700882911399651435269910; + uint256 constant IC12y = 19420664561222915288565214195621305836646005999579444116987825929295283607550; - uint256 constant IC13x = 8288309408330054258706642124434496564250798247092038321284502176065274287111; - uint256 constant IC13y = 15774239590024844214954064732913336305140370560987618725127870868208160316000; + uint256 constant IC13x = 21433578701292750401651120792999782910753919524705134407593361270156695487923; + uint256 constant IC13y = 11603494315169766066642621345412118538992552404495438222744029937356300914972; - uint256 constant IC14x = 7763864224858668678007706065940863845505863544445877259652697857428903176596; - uint256 constant IC14y = 18292989255066937731812120268099855796553812277847905572179855877951257017601; + uint256 constant IC14x = 20031783716778632555113481002912205783328662906838428828344625173975661571020; + uint256 constant IC14y = 15499986965031649885148239022364466166148665045240417235186576854625828599747; - uint256 constant IC15x = 20582272086549854424081011194499750419105220032803672952534340036444858290005; - uint256 constant IC15y = 20268844482500338925780686491633355490444398814210728177154239785898937375496; + uint256 constant IC15x = 8992013395418097308006543282826639532273314746372735948960206287054682158360; + uint256 constant IC15y = 1615422210483554518518254384027376194664748788274748577924307338059551406598; - uint256 constant IC16x = 5748393047160856405557773130679523497468090997757160771324565428255710804847; - uint256 constant IC16y = 9464996734470477384083865916038743513254986113834694214831418118029501282513; + uint256 constant IC16x = 4629280546147343772394290137981006260514853295240716294007743856958886987585; + uint256 constant IC16y = 1584702331099718089032542045924113247265887051843547512294330869849536557196; - uint256 constant IC17x = 9246205565618104342527441892676735883227622284119896042327539766513771757202; - uint256 constant IC17y = 7187654057470465243751261967375429066647706637695188481506184754688400552256; + uint256 constant IC17x = 1389701127175380877357507197865319123278566301837068942479482831407162573085; + uint256 constant IC17y = 3477558702805358585320587844481304222513401766596803010546886511256797282393; - uint256 constant IC18x = 10455404062726226538852275103735270618305762523504725899233869182243063857892; - uint256 constant IC18y = 15517918059300133828049839803926827669133981093252379216282186241401266257106; + uint256 constant IC18x = 15778586275741034280677486715674914249222515362089943735143603355576359603840; + uint256 constant IC18y = 5472292772511510671195845877224285932512676425019956326483595781755215482654; - uint256 constant IC19x = 13781805865764836090949734383455291109646254739313063778322202270505178610719; - uint256 constant IC19y = 9002822957910944113691141310480041966388279251077131182922138764866310746713; + uint256 constant IC19x = 16561716894977316576266451868198305486914734558440446379270983417409468725825; + uint256 constant IC19y = 19215428116592915602200080610583600214110550521814344958586250014767901224394; - uint256 constant IC20x = 14629587080912681942215665474406962843231080153632578489134578391948234384917; - uint256 constant IC20y = 21808106686097193916122767901122335566291811157316898737919422793938241016546; + uint256 constant IC20x = 6435961538575085590805931092359233869179492644526643589149772155241045519683; + uint256 constant IC20y = 4647043630119673286933582581738947939134704511975734334399480520893860956041; - uint256 constant IC21x = 15458646090990733073323203799822737864385159154151596332678685424418420425918; - uint256 constant IC21y = 20359449070594312493099965412567742849787647653500202318295353190027762143564; + uint256 constant IC21x = 12220576805388196897233434919060857079923138269552487253375421610134506445057; + uint256 constant IC21y = 17480620418622223896539578913348018035020180342466198197986961578313711037795; - uint256 constant IC22x = 20365589441307811528415601606888599278790688702492960299677322513209526781056; - uint256 constant IC22y = 8605995224572415081065664334094954398042581697973971225355905086529911883496; + uint256 constant IC22x = 21751653189349209381020073674410047004069384562060918880677239383144420611504; + uint256 constant IC22y = 10653048036246857337333299198464378585216399552265904812245566248660722796879; - uint256 constant IC23x = 9773510918620729430022724361175086296911938510940606450766632356578777247687; - uint256 constant IC23y = 18392220924417089279289379557542870300445626974450017375088588516448912432947; + uint256 constant IC23x = 4096142125818503191592810058875256208304674196711378965388058330916812082152; + uint256 constant IC23y = 14746599581319772190649619245118163707154719471377166346478023726055690538230; - uint256 constant IC24x = 12394317554620290098380173183959711433787736169529947043524250984119931647901; - uint256 constant IC24y = 5954730513003767902550957708981427941847291659362695245891325167921616407393; + uint256 constant IC24x = 5817628836817558772811252821464822616870368572396136215093864574514958310676; + uint256 constant IC24y = 9937291952486682810096945589559658696444370577704014449443301914898953649989; - uint256 constant IC25x = 9344483116155935090722478842314215558341324408206736944158461545892279711092; - uint256 constant IC25y = 15977810123771960746078592838158738183755117702131086632455579237796573683261; + uint256 constant IC25x = 5055408949144482407030431788124193916970715070926333386928549775964777564017; + uint256 constant IC25y = 1653143226927246460788627927738841710177060778627757384336576468951512255481; - uint256 constant IC26x = 21540423779951349572776927011475865857287597230133117454929577622460757864735; - uint256 constant IC26y = 983205674124325573706331337505266116328986466725444047565878194955651523018; + uint256 constant IC26x = 15904523125669445373993550771208741085879417687566176640143497383778564571443; + uint256 constant IC26y = 9180356701301973095640773523610057337477696927340061683931506183686113848826; - uint256 constant IC27x = 3738268915452992697603501468711653590373945891871834180066062737506839529633; - uint256 constant IC27y = 13350967605928813139833286596664924446762134116431553239287290595160461990965; + uint256 constant IC27x = 18202844052268461556416340600220633968458516717080079816583336691649309069378; + uint256 constant IC27y = 11978384663644997244320738410049699113313538217655824128668397436299528171984; - uint256 constant IC28x = 15880715580764459524149770440034460363689191149222477279742596724990156952476; - uint256 constant IC28y = 13920684666632138498656410468121341557706020986822863920213756409596323160523; + uint256 constant IC28x = 18526349627879294937279113787559697632728853774866816023970443840711930079986; + uint256 constant IC28y = 14794659753285134137683186172595721012970052093736624947580594391232767828837; - uint256 constant IC29x = 8741275422291842973138788483122014694985039241198758071551440280432629368411; - uint256 constant IC29y = 2869672824790805893309668534807018825898201984368792567655749361464837748469; + uint256 constant IC29x = 21315230340549433797940096956498545340282532943947448147220551269936395234383; + uint256 constant IC29y = 15322143408136039575614998596402941606216619110800742965734377763598445888577; - uint256 constant IC30x = 10954960864649307953546188158188183555194502885417120292979417202628775017044; - uint256 constant IC30y = 8182360700621865929408839976584474523934429158017169686152062618186891541874; + uint256 constant IC30x = 3084384750719469918762463432812801875772666740397837587871554107566064520533; + uint256 constant IC30y = 999005601220942684684701006626834858857288750265458497142618114473390321467; - uint256 constant IC31x = 13273218044875262256464456783575476773524247410752443820505518400030695612322; - uint256 constant IC31y = 10387476507610691933717235597861716820258047612961953162690006133386990638; + uint256 constant IC31x = 4170477772886137311017376686838724450408023150512336005136429859039778389638; + uint256 constant IC31y = 13029834605406042467000724873956439766897013550726839517901185004834295236667; - uint256 constant IC32x = 16552876838752962003299213508027232691202796779255527364177740353755993125446; - uint256 constant IC32y = 19357411399326439227805433938647951397066922097652071065227301312334948320287; + uint256 constant IC32x = 19906916270223493705590104154744019352644419476072118738290884696893427583349; + uint256 constant IC32y = 7376375179982262966715991378801540568981957648279748580890225629604232186120; - uint256 constant IC33x = 4128603196778452665350779980852390500008719336175099687613529178840682261522; - uint256 constant IC33y = 11406474965025065501393523817421409021371000580693836259572627358610624875352; + uint256 constant IC33x = 21571981872774359532368746702999584816731230946126836790899100435074725840729; + uint256 constant IC33y = 8392910258477795995051854805088607767280567447383003655689254178235151619358; - uint256 constant IC34x = 4678386423393258668536460102234876985486640647220281736104506526514272827829; - uint256 constant IC34y = 3697705148227107432461547780846151198382979667185773502461490419125913561334; + uint256 constant IC34x = 4208963250498857516395277379300074401890951089741483398592184274874859478305; + uint256 constant IC34y = 11386133995365653471398237867539667596747557585364124353946642625879013468122; - uint256 constant IC35x = 17180456370675229549227047775199150143955525246378786394260153405900240729964; - uint256 constant IC35y = 15567888362324569160588361337798916873071625105048435214001594968701253855975; + uint256 constant IC35x = 17574519406218986313827491573042332234795707627495448215129889081373763370379; + uint256 constant IC35y = 15962199197862676282957461696252192322173478865650638082161802367631360071333; - uint256 constant IC36x = 2073635269098804184389993890844562692137535644326662953482800651583784760087; - uint256 constant IC36y = 20671782324713030553032672627143393683592164401889452812172378477284127169433; + uint256 constant IC36x = 594200990146884924732271249413213986266535226001253567505410198194544070602; + uint256 constant IC36y = 15279518296325182193858687474844910880104109174302509017461123408216641264282; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_enc_nullifier_non_repudiation_batch.sol b/solidity/contracts/lib/verifier_anon_enc_nullifier_non_repudiation_batch.sol index d05b101..2fcd78c 100644 --- a/solidity/contracts/lib/verifier_anon_enc_nullifier_non_repudiation_batch.sol +++ b/solidity/contracts/lib/verifier_anon_enc_nullifier_non_repudiation_batch.sol @@ -43,428 +43,428 @@ contract Groth16Verifier_AnonEncNullifierNonRepudiationBatch { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 15407706254613279627791016491826810721911491822710963986774622517053132729580; - uint256 constant IC0y = 1805632836214500340391452066737694639765667212578931547617264034020285750701; + uint256 constant IC0x = 12357722887397397063290914950081245251793849248136219973608200413107558910920; + uint256 constant IC0y = 4854329681760424079200301196964804418051317992150592704945922320209960135615; - uint256 constant IC1x = 12821534719138537198532444002554031694030004474448548558174173525308428865380; - uint256 constant IC1y = 16100555060990923582912440517737572880715681619367677996800456420591818921733; + uint256 constant IC1x = 63956014395582859851821628825303629935655875970108406865173081969726972902; + uint256 constant IC1y = 19169940679514800817520883184766734364451745169600039418130572454265560347311; - uint256 constant IC2x = 19999188985157500333348642492909256262241132348222154142098286302751036485991; - uint256 constant IC2y = 13891016588899628087903018123991554945099531915363993406375122549666510217951; + uint256 constant IC2x = 15427398997571969589133154066934663043827337347252514640610706292747278433505; + uint256 constant IC2y = 19884327159083342433116467629326958804463755588270293558663980465362662596218; - uint256 constant IC3x = 5236501882007261930379213159240153583231904639358516496469680654352096021983; - uint256 constant IC3y = 131286341428586483131745567147778051866154993289664367256654350949133767539; + uint256 constant IC3x = 8148610063104875978956241605487343979737936801784359416676950253548219183236; + uint256 constant IC3y = 4089533439583831116829823073471799713533495517978046185353982796728764229955; - uint256 constant IC4x = 13031379193251564782668249404185952615518652293211055572218896317297428215970; - uint256 constant IC4y = 12531648883473527960684815946038096146009876015680130110552669402090700031581; + uint256 constant IC4x = 7108840844114926017728681076506211283148823147370606658411759973751322677551; + uint256 constant IC4y = 8312221100225412875220163718652725860787135759731900515588860641996751963742; - uint256 constant IC5x = 249517902580972123255235069761820702500099802857788653199373883101297093418; - uint256 constant IC5y = 9426143095754458931148749482110374505683726223561537220065087228245498193973; + uint256 constant IC5x = 19999680631326588721638656816875768202230454793889563610261922453306400076130; + uint256 constant IC5y = 17633362407863087760509350168264394964469863026887523177127675222102404259256; - uint256 constant IC6x = 11937088219557001031554255713808194650716140341315011752561816019037702317615; - uint256 constant IC6y = 11805615638835769807572175661095860213222281476822119066594064069294076054157; + uint256 constant IC6x = 60279885609441586470501544699850910826054515072233718476821533324317796760; + uint256 constant IC6y = 2516725315663124432040039464632757865919187004543500073008953173434170712586; - uint256 constant IC7x = 17107928218354552230086883764820754611904012722216371079972981530875043775026; - uint256 constant IC7y = 6517917040893167283406669540169834797529004319826693163480805089778661455196; + uint256 constant IC7x = 10942107103050075991680752085891564625863246172261714023507723323085668904466; + uint256 constant IC7y = 5046511885035709633287391484276157633944256383931871292920094733320837889372; - uint256 constant IC8x = 5798291948455405435907242488837952165287260462163703490320368057113712302123; - uint256 constant IC8y = 10205294764297064282852736153986442782661866424259137752085772412144786447122; + uint256 constant IC8x = 15223708766594522541551441480963824326898785032019366523588111695837388273352; + uint256 constant IC8y = 8810342322938657062547711804514390891167089575515108123482157066259393645618; - uint256 constant IC9x = 4014558556655174606371455170701418495631481890446457872658440603602755015579; - uint256 constant IC9y = 20544619293311264701925037884007219720008121701687691597221325792413869421084; + uint256 constant IC9x = 3004783894432255319030996372658625966341900594115532630229467506364255140404; + uint256 constant IC9y = 12422125467660955167596366046394857262007621879307660201069008164531538867380; - uint256 constant IC10x = 3248739597529206167395953409996715430225587593822074328553757230035062349795; - uint256 constant IC10y = 1229491527758687700836223775470035145444996954596639784744332401804828652173; + uint256 constant IC10x = 1722258167209615251112379048587673445541134721947858309305876128399530483641; + uint256 constant IC10y = 15524449886348292854171650721401492977394963035543173024091490277906366135977; - uint256 constant IC11x = 1179433201264389394915892323440022502845985551423499877894157310285587356367; - uint256 constant IC11y = 8501780610178354758333534593629181355274671340366635630321679501861963870046; + uint256 constant IC11x = 21592897984510812153550773627299313379976483459122383749693244471661337043788; + uint256 constant IC11y = 17941519762675431339314163204637620048456786732781035641713914464808928528439; - uint256 constant IC12x = 1886547226293616231194722783249458694007008452292559371175738927500183510247; - uint256 constant IC12y = 4243078325022536196528838144760686391905899879797844839081675939827674593404; + uint256 constant IC12x = 4237745940925156367630208359633589296644574779022338678075470438485188876510; + uint256 constant IC12y = 433954364493851845102959477381070459819715341230962919159060739441494534119; - uint256 constant IC13x = 15526596102013053188578780494126114643002787046917797102377582267014291979884; - uint256 constant IC13y = 6307823340936967798849511940579136294738726013504647726114030494313201767320; + uint256 constant IC13x = 14491669273645823978974499929606006866969582729419148343660506995200367721803; + uint256 constant IC13y = 3081998934624081013305363599487610649026921688041843666708591414597811337173; - uint256 constant IC14x = 10287600644438239217004517384851276191851535603211592770411503882582277355453; - uint256 constant IC14y = 21499570662186289189446171749048597874766400019882004232191134240798657411226; + uint256 constant IC14x = 18896863432606237483862168665171171717077268283994324211536584103199966774077; + uint256 constant IC14y = 18324640387315873978307114215871258899273231482605694887634567267251280265653; - uint256 constant IC15x = 3251186223766693300299218962708533362507177334856799776007015165586669517083; - uint256 constant IC15y = 3784796813796291130660891296519822807192838576733454833924146845404996693267; + uint256 constant IC15x = 7257907485952317343097721427540411934476083429383746692189530749460986610214; + uint256 constant IC15y = 1776493569766890289684844966784875554569858062494688791214038227117091539840; - uint256 constant IC16x = 16232766572809801789996521705720401414844622718865943280711266125212021390191; - uint256 constant IC16y = 14425938319993047445177828726253282147105523112226178463589576156607186094540; + uint256 constant IC16x = 6299916359174761892719740954133625881179897201901958447088609104917110570922; + uint256 constant IC16y = 15796238077753956781913778102621136118900485730834965507439179230972795590811; - uint256 constant IC17x = 227448070636782533749647699362537326234540830600718996912672017483052082849; - uint256 constant IC17y = 16086554678300571817490880823984442321673838928170999432192264807044853771523; + uint256 constant IC17x = 9127389414271466912041641961775565457019023441118683415454567638691635901316; + uint256 constant IC17y = 19481349273152771703522013143120030872955602885925825988235789340763849160956; - uint256 constant IC18x = 1098785026163464313115296136568636342300991168472127878722425967083579049779; - uint256 constant IC18y = 8934065560999496407110211865989324782568549827960988936272412983847535600007; + uint256 constant IC18x = 5898998139317828884955799431741821656142870336506604134992352876149231556495; + uint256 constant IC18y = 4967391113739523186074001104946601920606148914100233483941157478448177242431; - uint256 constant IC19x = 8449962214686142098447255675266537307102897417165010963018753312356433151519; - uint256 constant IC19y = 16847643894847044436780431908053692384738761292088775826166172335149945156467; + uint256 constant IC19x = 7695796572189653107388752334509061878234301305691271135574330502310426791008; + uint256 constant IC19y = 6243130245762212387202191114739001977982873796930383403914268627979604296777; - uint256 constant IC20x = 16611921344561802252512793867040260036328287730898518225127913816929835358157; - uint256 constant IC20y = 2944782103190540833124940138754333763337915004706612569400516681215464794556; + uint256 constant IC20x = 19432504217403478776598305831505791741413045942338937564035214082791549444969; + uint256 constant IC20y = 8919329072608144502505196760677187340182427808971399957859428652821224946297; - uint256 constant IC21x = 2857961995890891935415531299289810584269122984274092736632659806388833379636; - uint256 constant IC21y = 20812076525663693852466851920614360144594079854043603101952719763138044133537; + uint256 constant IC21x = 4129851084153044953515608579827890591435310100759828390707084189282091091690; + uint256 constant IC21y = 8685570648227001842257579553857216716294209787432529264641399202841554015416; - uint256 constant IC22x = 10387899103619476234215870784997482771049554291834713916735854282581156831661; - uint256 constant IC22y = 18909604894580378193662673417766001433158531992273944493373545963648836256986; + uint256 constant IC22x = 7217620719367422265456484330493776830588523307429814352334863398165756664447; + uint256 constant IC22y = 21752837361064172344380368721330950087276122939929457204934635312514029514901; - uint256 constant IC23x = 14171866277822649091228875399480716425712926779189170236391216676837631003623; - uint256 constant IC23y = 3006848157104397261749762658887413480779144031776291946585164452121401053531; + uint256 constant IC23x = 5936333528008896289130366462067790478147631702272967107288983023577627294862; + uint256 constant IC23y = 21671803675805930345169475806127486289784464455792344875845275794023263041837; - uint256 constant IC24x = 9554826779955855752182295090899329700655153913328303724586325059007468628018; - uint256 constant IC24y = 20680421401456007598605190734984928820121287554513287764730175173611417980976; + uint256 constant IC24x = 4392909485552163556697991701343430429116814514340931192238012636007118226650; + uint256 constant IC24y = 7767760372439763147950152436626664530537575608985811556913325560253529541976; - uint256 constant IC25x = 14248468415818985282101875475954004469697830653279664022614431906874655572538; - uint256 constant IC25y = 15889355508039628384908751256270892760423555538201377140807260770490817502996; + uint256 constant IC25x = 1486389658504227891054370014785187444556763426863239751980403900129636629936; + uint256 constant IC25y = 5934715951066346523504746093485786296605813504336363002627652185736781279651; - uint256 constant IC26x = 14503308583214801290231844165147101322811597353588628912814019648159353232027; - uint256 constant IC26y = 9724832390816706957630238414163133055489954147012987092310178158791392489073; + uint256 constant IC26x = 21488627634573329345772101206450014489442441883329304899678589632604545942469; + uint256 constant IC26y = 12248084141856638440424218166548318289734004517729739759344440565187452786452; - uint256 constant IC27x = 2705549009712213691354836535780104845596544975608667966534212190398401892432; - uint256 constant IC27y = 6334243706534311354143209779623449521307658546037901891006457947026865698020; + uint256 constant IC27x = 200662457781228729190802137633578866054011268760537828632647224366426565220; + uint256 constant IC27y = 3302259500126367664676801157753220676573647645306467466772069059425544045908; - uint256 constant IC28x = 8680521766903470202982970326981314216175568153032256834507063147873851128898; - uint256 constant IC28y = 3986228740055977117612698547676444019283893411172053476175786095819813951489; + uint256 constant IC28x = 13776602163180296143822318482513045976813462974737366740614478067808688416278; + uint256 constant IC28y = 18813822646096858762417340888253109703442473009516152631225165337027236483385; - uint256 constant IC29x = 13522231082689348428734389394105363320664835431888709221295418385906362669533; - uint256 constant IC29y = 7350576050668915672910966635738671447138155995362753319202585186026321131302; + uint256 constant IC29x = 17911143724269673341179642289894200814115364726467133169333530671511424027359; + uint256 constant IC29y = 10910928214388150580396504033511313407363628143921971359972672309551192931845; - uint256 constant IC30x = 18079856292099446690604233476290595813176647548649981586108068661128790769516; - uint256 constant IC30y = 13401228843567200093774989793764941657532140859355659314450441860375892663821; + uint256 constant IC30x = 13955386533152898517611334117655125836190156249960229323646141653251602652126; + uint256 constant IC30y = 17095949402527529688324811770456126961354633370173642367182559719197098420560; - uint256 constant IC31x = 20437594559922333631699503278047484925495166635102871592527880011498729673339; - uint256 constant IC31y = 7238820582593090684569422620766942163514101134141727932245457407177640406446; + uint256 constant IC31x = 3937773542856525129812102824086464766044751756853186262328435887183288977054; + uint256 constant IC31y = 21739258497701526726359097397702636065449188046818119701938654039798602485056; - uint256 constant IC32x = 4995726310820629443186257045209610627474441399190479186932496742751516237931; - uint256 constant IC32y = 13594647265153279736529389786832847856441067627186593841560225552068363017902; + uint256 constant IC32x = 21642596574441478424766066045737327189914113143531545693056512618474624298619; + uint256 constant IC32y = 20116969253845876911372077297399145675828417636774556650636443267827293614227; - uint256 constant IC33x = 16836983824885519253485048503511430534371663143076029530303087066949020215811; - uint256 constant IC33y = 4636170333813342107103560388064993572893588029404194683145661661160673930454; + uint256 constant IC33x = 4947829836428172426865912115502105627365343481076581123171879831180936553031; + uint256 constant IC33y = 649056939278547244712654460840615359578061770606163084509869580899233953871; - uint256 constant IC34x = 13933307545003680242930668215676045339127653861280698067207962155270409542985; - uint256 constant IC34y = 9003414234427310136062415607240565538629402513544180912547734540203945866480; + uint256 constant IC34x = 2346094473812104204527226114492526604824386515998120384404803589509438588245; + uint256 constant IC34y = 7606781811385730513730207140003726004660461242216269446293196868915413416634; - uint256 constant IC35x = 7245717542010326173968802477651445570898290038897805371044903742143821043547; - uint256 constant IC35y = 2065626563632180857996597593695612627640477364807181866222125453835183573368; + uint256 constant IC35x = 15485840014683707770321379533344024025246088290359056687597923597249857101735; + uint256 constant IC35y = 6446164333603048908953482766794131860219110433201258347312294358462933719014; - uint256 constant IC36x = 12442072207857591741961040417591631023963566326743600910376192360566024567553; - uint256 constant IC36y = 15595673500569791404379118652853652653796796652784503945271245125688526192092; + uint256 constant IC36x = 13834703793324347894812657507668740191087795202269093110216661815623077728364; + uint256 constant IC36y = 6138274746252880565142497950523664096669314283185206981558850817426548405275; - uint256 constant IC37x = 7763185648976943187823768946366339035722421324185050721445533926990616786901; - uint256 constant IC37y = 11948342688520596764409482868423198758187634222544732191984628622416776629512; + uint256 constant IC37x = 8612202746787293628285962739255025239388095258629714702827989723830129584056; + uint256 constant IC37y = 13754009278123607778449255734472501080809919698287087067053676859360307940543; - uint256 constant IC38x = 20334660401602223280165892495074755252042394630980037818462985719424221236377; - uint256 constant IC38y = 13729492476192326869572718974650262398629575450063826498069969398621443528369; + uint256 constant IC38x = 17508630640553929320015279287522122444980397988219072022222160116567682991714; + uint256 constant IC38y = 13026939736944052039020694778286739416778779821170159215167626928015063326779; - uint256 constant IC39x = 20447828951902422560956283459421116771914923336835151014851775639610225008076; - uint256 constant IC39y = 7648443527736451807930755436590563217566850730301036564771896838104615408184; + uint256 constant IC39x = 950359700652951359102649927183565842904235100836443610365425554684668267753; + uint256 constant IC39y = 2861862034936719315251382247544347605182442097988770095362931975972711708697; - uint256 constant IC40x = 11291767081610629786843809417519203599371224381339214617802519773377062256507; - uint256 constant IC40y = 1017314710713164063631855642844781527849804649822817029641217915294101871683; + uint256 constant IC40x = 676120242597597907739479711108831497189404299486768113234474999778618608343; + uint256 constant IC40y = 16084502108542174852998517759098776139377792627279197252008822609915165126841; - uint256 constant IC41x = 20686515513462127782380402279537195800991865490761941280798070331875191362991; - uint256 constant IC41y = 13619820263004096948708855548475007387893496734752550056458068193542545510378; + uint256 constant IC41x = 17344666889563060711567056471042897757755692285741504051950959268701368600438; + uint256 constant IC41y = 11066405092919197069084675797065814259037285789259729679970816071735649322162; - uint256 constant IC42x = 11082132592845356030118676224360424049306438693381434182946322816869038679346; - uint256 constant IC42y = 3852032638638706636303480795638113484675090912580591385855086556715158066333; + uint256 constant IC42x = 2579427148426696481338486759589487711696046548398597490877041027821267445908; + uint256 constant IC42y = 19207992837478817009329113810674959195896534114471875473249517265303141967989; - uint256 constant IC43x = 8592486674919551797992537313463612050516345382458619728349753653180531140052; - uint256 constant IC43y = 17368081079279826965185067183138322261198582010758690745593971066482206778626; + uint256 constant IC43x = 14956208701231162851414715800260383790149301553379953883396179006162282832643; + uint256 constant IC43y = 1197111452635760157195802897806218527623756764218688544656324806908364763041; - uint256 constant IC44x = 7990215583610635227940148928563434514056880379617871103100183076055946921572; - uint256 constant IC44y = 12067404451024785117620409767989978227195190448931140404614214854154363210329; + uint256 constant IC44x = 9633334638274129892717316347334533111262690010149939219787967557541281692175; + uint256 constant IC44y = 18024934457479159911319432385465270270597349010610163623856273656114891975973; - uint256 constant IC45x = 331152549542508101446600814178970174858846094298076424095654770282505407956; - uint256 constant IC45y = 12641750796398203736222237801218421097149331729614444870332376985716231065669; + uint256 constant IC45x = 15330523911327224667409197962405204258375557128533543038591849181160010343937; + uint256 constant IC45y = 18912796068396162872719678325296074979831586592981715033970518282523107347119; - uint256 constant IC46x = 1498480962422330154194482504998698557152143880836176710140245895934090175347; - uint256 constant IC46y = 7375318566747138116843509666074022704205708232292326726479880537906062973203; + uint256 constant IC46x = 18140117478870555701262158360978644186103324009091804166794132971163266352817; + uint256 constant IC46y = 7216705386296695807422451511767221685357121811298361271450957951223756920697; - uint256 constant IC47x = 1699314611170335354077102139467765822473061880960779851439518756812580998095; - uint256 constant IC47y = 8883302754501885396422087411001660033138099347421313735547896958735503590723; + uint256 constant IC47x = 4706859506759263337681994707310026797743983248551819251685724408833457747268; + uint256 constant IC47y = 4728546956067739545925197584083337290325109317034222778213165551063747614556; - uint256 constant IC48x = 4597821992052683266178547522089040143364154085336019103667611022826948192111; - uint256 constant IC48y = 10052013625748875046129016861558387048018250521504914100315007951178019650155; + uint256 constant IC48x = 7063127309283704579090525171485217939537610632063514087676752420364351263957; + uint256 constant IC48y = 725353811944771735958419042617388435466820781482141186234157447995160568571; - uint256 constant IC49x = 14180682672068515148379034742692823048197897764415305618509529666281020735612; - uint256 constant IC49y = 14567856836016314260137139431939640762794082483451763043398797126659368527376; + uint256 constant IC49x = 6569991399871276040401270457167232895387446594750066203271236673771510387866; + uint256 constant IC49y = 18236958640834512855122520288631490060095406626401069007361771676067258122060; - uint256 constant IC50x = 15584723159734470807937598899985473701200472162133379764364909143224058961950; - uint256 constant IC50y = 8927690493037339142419340798814988298583779097758697171785161664860574122101; + uint256 constant IC50x = 273376257884754949959600129310042086004158676434934591789269251701822678013; + uint256 constant IC50y = 20802177354733916109755996711941892650016876894536573282646288378554341094513; - uint256 constant IC51x = 16802647937613012869135987269776094089928220285561442016443185735676763831431; - uint256 constant IC51y = 2959984124316433004010775131546641339187169868263900891474654058771118182013; + uint256 constant IC51x = 20008431781565148128481780677101952049411562769740462517033520841990482613714; + uint256 constant IC51y = 18085048084438726809776889401723769303116391996500876428902462759771861543550; - uint256 constant IC52x = 8688884723408400714438530601405778789869090183121779311639634453295927139564; - uint256 constant IC52y = 6325160675508654190517072826471506275901269930305473410670203624176980158054; + uint256 constant IC52x = 1334135926762510027184217006632182446188899475235200300593647968993043953624; + uint256 constant IC52y = 14898658805787112968366004398817305259424303507412638780388641826556455488958; - uint256 constant IC53x = 16576828376530775578207635573112218973235379366403877355848325378179553039666; - uint256 constant IC53y = 17426417469708747921716925286746435573354665667581481189893469966167221582394; + uint256 constant IC53x = 14086990386003260728951867836521915962308413372710402703090403120505643731719; + uint256 constant IC53y = 4550491216677097266011498559973734046723357215975966735250738714606062557130; - uint256 constant IC54x = 16081827276790159159732749776812035810935540329268854126244314800438781840368; - uint256 constant IC54y = 7812724939235873854013496471063123157022325024551555231583197131290209710549; + uint256 constant IC54x = 2275228586744382006864806429315665933842890222668263169687042442800379231042; + uint256 constant IC54y = 14864408495706914352351695749950992535691798678343829075088883269012556499546; - uint256 constant IC55x = 6635015586786669482614868296521793858291003501632293979650938657797054792438; - uint256 constant IC55y = 17643442048413475002015321165159206215034963517308660412573199295916300352564; + uint256 constant IC55x = 13278219858206869109196953169249565661008662802989951211629501242053060323542; + uint256 constant IC55y = 16562744111205622549825150770134507090780224119516969285950588822789439446467; - uint256 constant IC56x = 18410666348864717924684660607353802212414212240675016236745153976826795158534; - uint256 constant IC56y = 16665540827826014763952889794731175615983429706120681200953050146218940613267; + uint256 constant IC56x = 18435378128170116432606714146159709739968660194595671315896737350999795497217; + uint256 constant IC56y = 6413437810202929958784178338250201336725136804669633213538813003737369971079; - uint256 constant IC57x = 5920722363524444529293189167692533582967270176772682973927036601166873767019; - uint256 constant IC57y = 12726510624057778298917200831045081316026187420438714360562711479492785797875; + uint256 constant IC57x = 7703093660259146717195001181176961272390518531224230599959660746817254265699; + uint256 constant IC57y = 1662971422902417595707272606574705833337155373069155024466249457425341060298; - uint256 constant IC58x = 949880545125243211431720661583012725139476704863071313764024918842183271602; - uint256 constant IC58y = 1640340577396708183394177743170255997733743356690258368447299163675137137371; + uint256 constant IC58x = 3891951059525600461390419860245433839959613015324828136947030680590375690215; + uint256 constant IC58y = 11506448744044425046737852567429421300228501619202460209872315161711687819277; - uint256 constant IC59x = 699245505582035840275049804849672340519960532217770210336903508529550846106; - uint256 constant IC59y = 4110041707706528628934051098067865830442124409963667440145922891236630934011; + uint256 constant IC59x = 11506844933601623743077131643672697901203248230039224639385524214583443353288; + uint256 constant IC59y = 19374917662018931782165304006196833068002207167568863659257625049490187111798; - uint256 constant IC60x = 2705182811466159932332775985912264407703014202620937803123219374572175498211; - uint256 constant IC60y = 7024678763647961948952777864271839760087426108115916279336571461469207720971; + uint256 constant IC60x = 18109467085939985018490970117334388227017627948407527495059747384704601907699; + uint256 constant IC60y = 5728832183981487319808134108929788399746078879188210933831480810289677687952; - uint256 constant IC61x = 13790485501716369250157760211795061409798725104058416201785092729106555718243; - uint256 constant IC61y = 2995643192333485031905552629231284354663864285455365332909954202938615441027; + uint256 constant IC61x = 5505912057671306307404756763293828205558410237204821563601232735476815525311; + uint256 constant IC61y = 18633274393123509336883679174009051786999325381511009868170599738210334040688; - uint256 constant IC62x = 7716654327876148805119168131535509088331150093732510803545121911674899176498; - uint256 constant IC62y = 2572737393963915423011100364189296650235201956349393326391451289668374800033; + uint256 constant IC62x = 18273415016507657672863699933536069904408121662200653165879197841373089972054; + uint256 constant IC62y = 21887055840177658269416887676683708250985080064752623891930158087007976407247; - uint256 constant IC63x = 9407416070002568181666901587549581630332317899462941999491333142881354898169; - uint256 constant IC63y = 14716863487109498867717057746375312523424193196878342957788984971250167017195; + uint256 constant IC63x = 7249888396028821912683814939883450700004160452183974514320210613993804973330; + uint256 constant IC63y = 10278109006766333044040933972102648019831903751745046397673765473637073161725; - uint256 constant IC64x = 5410133880611549651484374624648278701455321188167345926986929640633916634836; - uint256 constant IC64y = 20049942290726496994351362695781233784070155164971513699614354999530286173893; + uint256 constant IC64x = 18857524088030913877431395591910218517660202038874654712140329487124841247831; + uint256 constant IC64y = 5956250147773078437987476666567034615671977546992022893816122844013930943823; - uint256 constant IC65x = 3694405469587082926069409639491395449303254998893257144810332300242055754316; - uint256 constant IC65y = 4879420170591203929223396928858788719604718675892556258083339166142522833375; + uint256 constant IC65x = 14754617896097928650573419832226129188805278297912971153697772320607888260109; + uint256 constant IC65y = 4672248130019147749734779576665442078462285787933394054189689027496226507555; - uint256 constant IC66x = 8360390425846388958015016195243553131251532358540210799224862175209839729424; - uint256 constant IC66y = 686432576563840905057595122938954184796118258331648415325778684272628461415; + uint256 constant IC66x = 12904078116900652895168954906553819653334490263455866413061865107778340176503; + uint256 constant IC66y = 4456908603056148500418019353007108847974888179835679968915207827862474404055; - uint256 constant IC67x = 17546712108346834046687798395256418981879288843417367084767005731206147165845; - uint256 constant IC67y = 11065550600176509275676561557678278169671776819078585297018556158427201729595; + uint256 constant IC67x = 1552917813399244489757015520756066329428592613780645499804665579290001092140; + uint256 constant IC67y = 10762640630199035162536807059133639704980192859739070978044920281591252768435; - uint256 constant IC68x = 8196937164584612656880245959291145383233679955144017204949411491384153671818; - uint256 constant IC68y = 1020372992935935946592852736837981861311112416190186944438070878025720756829; + uint256 constant IC68x = 13742700171284387700355958387793427599608699410786556063844162580794168263617; + uint256 constant IC68y = 10746718765378053927290423988795316141268600925336670498094691921590391470153; - uint256 constant IC69x = 11945396313078737667120892972727312433076198146705479957352094013019420951318; - uint256 constant IC69y = 11257566793363205159497746101963616634985726781591427565068900231082481179730; + uint256 constant IC69x = 18642054731015731754626491389030041607032344677863786044778683025320457080328; + uint256 constant IC69y = 8804187737015861929023363229832306198354900096467801788093280552793192280694; - uint256 constant IC70x = 11906205291684963950565201972041617205340760485520122734668268607813851969378; - uint256 constant IC70y = 13335015831610998205156766490589806904153942776847254076149073899432112381514; + uint256 constant IC70x = 15404694325230142630000413695878805682192450495240055693586740915036389874942; + uint256 constant IC70y = 10348170848941277394436745958793790878214419952388488368838987940474958599655; - uint256 constant IC71x = 20473233196264729824827172523385152947690197688257169336321375995408103340875; - uint256 constant IC71y = 4171705257480291306230221203348860100765286134719914625726005060241075821038; + uint256 constant IC71x = 15489619346110565561504163884687175947548801707786435908758794223649396210829; + uint256 constant IC71y = 3793625206037123448819562729501164365211326414020745034092694067507789331545; - uint256 constant IC72x = 7927559128611977488888733234677814187738627927545658521089220012077828238252; - uint256 constant IC72y = 2654337640081594334009687272578726061098996848154156332928103044732728630558; + uint256 constant IC72x = 7511601045874622523568994161882092292760369351630950345597649693678907038678; + uint256 constant IC72y = 14954282181229821244189027640548694875758756571349288204604639557046830612987; - uint256 constant IC73x = 18213641457184771072621725540817750638796965373623944522312479542616850196885; - uint256 constant IC73y = 6016435997518949372065807347692413703805573818812039706705594161480956218284; + uint256 constant IC73x = 10397932041134516510661179086827487039232595575513964353647794403179296883783; + uint256 constant IC73y = 21882409673654351703561796583661153963044893252777536663061028484786705481506; - uint256 constant IC74x = 18765451601960566573885826872535316693691062874593714576833802280528202760570; - uint256 constant IC74y = 8412765659911324528241150769045867186804092393728614078430339867215879598598; + uint256 constant IC74x = 119035749684244683262957204649998876457241382608784388130572597693268729158; + uint256 constant IC74y = 5234144869616607720350742632600001641074098082817849735998975808235284077521; - uint256 constant IC75x = 477834198854576804681288566640320704494271023478665554723150809089682439181; - uint256 constant IC75y = 13341324182469669357205635889278915727066193338415311008139523525991803372698; + uint256 constant IC75x = 14809809060650816550426128189128596747800701379595955053494978162737808299562; + uint256 constant IC75y = 17207100226226301111881479508376089826293106508757229383584271120911482780747; - uint256 constant IC76x = 3470731540357564685302187305676581033791995282421733055521780483325592957775; - uint256 constant IC76y = 15133078636183988596683956496231206030568424634123523621437806148322650539688; + uint256 constant IC76x = 21500354033853662864462496604784397823294806380555833580465435907821270361576; + uint256 constant IC76y = 10519574061095429195731469445000637775726407515209002829770204720046286008158; - uint256 constant IC77x = 15205063991798645201886131812913990541963857761186766038920538282961374822621; - uint256 constant IC77y = 11767817589991381410467932798155911131009662924443858651013859566799210108201; + uint256 constant IC77x = 6524099530394593369670713336029851840989018696948064260453897690561074174216; + uint256 constant IC77y = 1210218715539233489712026084952199430965047910197948571254241559670442885758; - uint256 constant IC78x = 6561239745020770761089536274114876851684455122702320104109965183140077354889; - uint256 constant IC78y = 9990696516807444304488408551606266283579296839818008500154230465124248726507; + uint256 constant IC78x = 3029308444150593179966756778598326321338597420087486327461952064196401895373; + uint256 constant IC78y = 4011905893261035159603448370595794871687184074676879891933617530616309920723; - uint256 constant IC79x = 11724772851116968656297355417505544057267832442410682874367962967319856489533; - uint256 constant IC79y = 3906533012469190973492042387546107187908437520975805631652585869464302231640; + uint256 constant IC79x = 4772157008666709788083158826034823298150023066864592956692139564470077465294; + uint256 constant IC79y = 5252974623640482554331646661746541864554712181708696310216020037163071719925; - uint256 constant IC80x = 7930541695362534289848062679470531395525395444584893125940218010560306501994; - uint256 constant IC80y = 13994814195450228565908232524112302783098434904473751223637429708525484103450; + uint256 constant IC80x = 6378929523607816281658775213619734953080469275687302644734731078368381022599; + uint256 constant IC80y = 8304769589229131093184305600157162059604585940120891273181333285881384453217; - uint256 constant IC81x = 13132179635176614943968573869338385200594963389326875117628532839205458949138; - uint256 constant IC81y = 405548391191859965971006213498623577007469961396117239795449564899339224768; + uint256 constant IC81x = 16783771703826969582734917289139401533590323301733992821910145772236953938570; + uint256 constant IC81y = 11138921271182998482248028676732680455540532735270446273693074686799941563980; - uint256 constant IC82x = 18667040248825667322713274856616232236396643635828722195556118251106315217435; - uint256 constant IC82y = 4603728992719232705063317217811897381883138936799140105215877308008515347198; + uint256 constant IC82x = 11228973809098943158483915883100941382190735021179550334991199176675607369771; + uint256 constant IC82y = 18626631752121749167924298449579082232997413842690335426662992940264466496186; - uint256 constant IC83x = 21113841097871004552415432135112579100333737090031424470211426083680842037682; - uint256 constant IC83y = 11931228233790432310950702243526185546787413458302844954735600713209049772488; + uint256 constant IC83x = 2955963974851930218382630571969667874478377397952213230068775173208426249466; + uint256 constant IC83y = 4812346438417622991642606074587904949189886852392085446208940690022489990152; - uint256 constant IC84x = 20114569317044702934026106981607723616609679970446227822214346521849281128186; - uint256 constant IC84y = 21621494457908024140606326407206486803323810035268576975615378819790844920191; + uint256 constant IC84x = 8579928442669409193555639681689310601505342909069133022625303611870180395317; + uint256 constant IC84y = 11974451781383442051966939853443267788559104648056480414877411894899794471602; - uint256 constant IC85x = 19036807926154831789555703695655139289001578955130984018835662024770977951980; - uint256 constant IC85y = 16521655433252014319058134055817412719334766298330632814017430666750884031681; + uint256 constant IC85x = 14693823705381345641104028565695057488868476187003397354410069979924034977714; + uint256 constant IC85y = 10808847477151605849523286773437312542339532477890697232453235329357453162609; - uint256 constant IC86x = 14975807860548230879425938928494255779742665726259393646292585729962569213394; - uint256 constant IC86y = 3293392971518938712944872948582396020623815270030676237104088138536694006356; + uint256 constant IC86x = 4479853668463028432797166204803107574059199675734283182226001328527017098983; + uint256 constant IC86y = 5857431704045640419303495181243249685629825156110128201102055248843550762186; - uint256 constant IC87x = 636254275621362488806461458158925004919531848164193097829706325052968892408; - uint256 constant IC87y = 14222623693884840942910339628909969797623785105744454962598987243531118552214; + uint256 constant IC87x = 7468951055456194936694006859348815788497596271752982801816651205771294911472; + uint256 constant IC87y = 11210972601496318653990976821130540863130051258037861246811211641716047267789; - uint256 constant IC88x = 5890422223290371593959727357893967642654478725736641894870776568957968813430; - uint256 constant IC88y = 21763182775884637385153192839510884543136494408827382473284648200777342914129; + uint256 constant IC88x = 469945491360080742593798957727349252635467160837892793328136416156838386937; + uint256 constant IC88y = 14298226321967546221086557427667632934747326852901129340742011376758018606851; - uint256 constant IC89x = 7149194864365943026646684614241643351450211998335008872277371189396920908713; - uint256 constant IC89y = 4580655496815552590239466464458221040695177187293168332385065282674733336824; + uint256 constant IC89x = 15709103612106145474807042554310279911668392578390105717492047571184884809757; + uint256 constant IC89y = 15293256281025265669889497902766936274831632015681583910780840595141764308625; - uint256 constant IC90x = 14928859714169641663917139575906095134887188803281198925263928389359331886076; - uint256 constant IC90y = 16681311850963175904615749014024761249752035128876326676851148564351889437644; + uint256 constant IC90x = 18212321727969563980575805193570825675427279799500334910566751515725575074478; + uint256 constant IC90y = 21002071476145231856038211168155460613767919096402811430100911496812863646608; - uint256 constant IC91x = 3087282391126570501496074164612140603124224844073694276762135769076127738050; - uint256 constant IC91y = 271220548660735571973770638839815415163646466472847004957090701655255121781; + uint256 constant IC91x = 20788463823597930939051556797699382117046232296701454033805084119516630773984; + uint256 constant IC91y = 1736813108888943735819375892083237720441626684594253306582178771925124392383; - uint256 constant IC92x = 5155348108209718270961674829262565193797740669344913416167498226503399293781; - uint256 constant IC92y = 2883229394830858161400871862760335658621173449728571932590939268447809449634; + uint256 constant IC92x = 3952367761202938348214497944647528643171323966477263867352589409555081945169; + uint256 constant IC92y = 18987289250297776358070949583722811355803149055118461778902137358571930038759; - uint256 constant IC93x = 10261682070240546448121694856467158759980201228572458413668058415549500253129; - uint256 constant IC93y = 3517919799935106105157877511074736568451992083466241912117075659975798892418; + uint256 constant IC93x = 11541740478988278170353560529731342452666951557782767469600570339178903692145; + uint256 constant IC93y = 14720712572063121746831900207388633472732527305219821816749653324157357712184; - uint256 constant IC94x = 2410064472025323717743691805237849249774522480824096186849321112235885897013; - uint256 constant IC94y = 16321306342149339358374578893596732909222680458340921419263240886309079645334; + uint256 constant IC94x = 4466762382351614900111045234843961703905504182261370082335006100139580357051; + uint256 constant IC94y = 14234293522065744182696727162390337111785343493033465012586728520792067314811; - uint256 constant IC95x = 21590966021307972227222350759130688631401981807828495769294466938026620029429; - uint256 constant IC95y = 16841965240008941507517066839317685693053720539559792813592873710834759070500; + uint256 constant IC95x = 9336885020957210091725477804423160044591774004457288939713050569192398124571; + uint256 constant IC95y = 7385691419151220727765520272307441465261543129497865923124224808836819459600; - uint256 constant IC96x = 18491895583840762708761752050517224669252808631694959239827406587020502964257; - uint256 constant IC96y = 115262940492933303933465188608928007163132674746813114088629549031028933474; + uint256 constant IC96x = 14670234264463902448311607061100232722678233796688992101768859246017661893336; + uint256 constant IC96y = 16008416492167584057411942618774371752894794252885515758112793649769723357778; - uint256 constant IC97x = 14391265599688161995602335132798044037715409742962564947829361667812883833428; - uint256 constant IC97y = 20518087835005998728140331981530259296120636457989473481690209922306348305147; + uint256 constant IC97x = 1048010112546872294412170780141258732176131238078955240129633480681118108007; + uint256 constant IC97y = 7784348751111357327490237867639245648100361019781260846326474788754694725384; - uint256 constant IC98x = 19715379695935966610097954303842511519077913332519222889244535799019625504639; - uint256 constant IC98y = 13144194099439902353626995097665056345848382663290148134760103562472299082801; + uint256 constant IC98x = 13778921581276209335457263800500897517974842776819735813578856217426195778074; + uint256 constant IC98y = 14653754329156566557107422888746406523685203684211797888520847388227456141436; - uint256 constant IC99x = 19158238821784234929970587550167653093608160977355377402371573852274318734534; - uint256 constant IC99y = 13992463370141985697908873354422009457935866505392003486934620987045128615983; + uint256 constant IC99x = 3475667029506672565347608935462533861768135738048781111983966942872000167795; + uint256 constant IC99y = 19870060701803383012750696870254467354082269786039613272591070819493732535805; - uint256 constant IC100x = 14724059706071744161240551034926811662092241991709320704666302965817156737535; - uint256 constant IC100y = 3951876048989504351827578983877721419517152472683909730783076623576700331926; + uint256 constant IC100x = 20907077814964923752097546377527242248465217084787680614749214294106298663257; + uint256 constant IC100y = 11608396846890492075137393902552302749283346214653870889256472345901051472808; - uint256 constant IC101x = 10271629111899795298856960592192368871413049682517937942000637144738988346610; - uint256 constant IC101y = 5443872355812403788849731310041422383281487330190819193651129497334763043412; + uint256 constant IC101x = 17268421130642630645871410358970846384573138558148030744025195802056584999689; + uint256 constant IC101y = 19137841421449650496682291867339071640771756678776045049699407526328986780780; - uint256 constant IC102x = 14151610918439130889093525433923788986710048310741777368395475382304975116266; - uint256 constant IC102y = 20398350377412501738844048371471341463818936057945966683578695213772180372919; + uint256 constant IC102x = 18920410666377000338509777982103238586708256206645541621158950791873430222790; + uint256 constant IC102y = 21527830348338743033426762836958890505649532395881767228123558597933935859810; - uint256 constant IC103x = 18642717901047973669529289674401530907531050223707548461915971771209590821113; - uint256 constant IC103y = 13129457520015824739523618571166267259076486759275727709388508331397073480693; + uint256 constant IC103x = 13388083302883410021259740180730805153752561957208542623785365496545975930929; + uint256 constant IC103y = 3116057912611985612735049599891608453872083785043107121783791948047795381665; - uint256 constant IC104x = 14665381862213039367403088586219392326049164781061419991682254406742344812116; - uint256 constant IC104y = 3595747496964685270867505209015968932372783204585029793809655635046587156437; + uint256 constant IC104x = 21410094649876313980419061256833999494476787778208453250265794740422137488916; + uint256 constant IC104y = 9889750332804125071361707671092561311189976217962320566186722294079949416390; - uint256 constant IC105x = 20892157371514893257645079510112666584365613257389071625290401569726903146447; - uint256 constant IC105y = 2291450820246146155407461522239468892511201569505073158556915849671596571994; + uint256 constant IC105x = 7216252783367892728121524829071845191696170036336499693001663919565940514321; + uint256 constant IC105y = 8674096981927968983096586940286974816160504371871670976362988197518682426426; - uint256 constant IC106x = 3014871886211163829502001911772091435620013348092845567333550456268882381516; - uint256 constant IC106y = 9234423757425192531614338424702867343275932058663022711060076855414857496956; + uint256 constant IC106x = 17382041370870787899143991415593158392521207231220601883114784909776718015154; + uint256 constant IC106y = 1980169983157409170241301604228276168252322638227326026890777513927043718382; - uint256 constant IC107x = 16577724228857263781953137909403905534891837046233589178744877659673557792785; - uint256 constant IC107y = 12508671406519037750854989325853663694723020826305882996181376208118451620143; + uint256 constant IC107x = 19755938367523904252273983945933693922597417119788343442343305244763358306136; + uint256 constant IC107y = 16282856444044275789373839247796525898087321506424525764744429449696553445309; - uint256 constant IC108x = 4150909807989459251480245337138416261342731907867466663344211901714185039746; - uint256 constant IC108y = 2169769775955205020647483529809162143086614391054962410650696544622272956453; + uint256 constant IC108x = 1380072869750556616110760752226507598864120033045839311082306941342995301949; + uint256 constant IC108y = 5096890030982074747406404062307392881728952632743282086526173788041430899869; - uint256 constant IC109x = 3111887453268437204331662130356947182926383335744412582791949440567897507841; - uint256 constant IC109y = 727505704185460892176927249002780726288443574389753381662208302305329644203; + uint256 constant IC109x = 12833814553062371936091413401233246744258743817897948803999367823158556560444; + uint256 constant IC109y = 13765448447728902380639119338258949371965502201129322928783558828550388745433; - uint256 constant IC110x = 4306251710570350649834610818830734576656293268945640534180626575302774193090; - uint256 constant IC110y = 12229026335578421912782929506143561806389622707643350141258969323410043013276; + uint256 constant IC110x = 11739271722979714718129398821905876517872630131840392402340167411453799145727; + uint256 constant IC110y = 14784602485179739184197475178634609437523789138502144027279314561186529928487; - uint256 constant IC111x = 10724870606586056255512411866209458420908028386178343525414585255196652435926; - uint256 constant IC111y = 5429265768966467597462329363115840971439438324061440864774070816491772126646; + uint256 constant IC111x = 15028775137615846059512614763851018272869675335551980898858299562455259725627; + uint256 constant IC111y = 7447134397263849978635717247111564322496924179278504269413330310341232701069; - uint256 constant IC112x = 3527543037193200901409343494788320343753171735202398297516156782129318607237; - uint256 constant IC112y = 12421887997580427102580555498760056236373788136030208087973515726861526125174; + uint256 constant IC112x = 3249673272802804318208473440444746397200480614978339912902906838296233686026; + uint256 constant IC112y = 13226886582962948052901075053326020350795244389888278130645086813891469013329; - uint256 constant IC113x = 7376630664430451105005470061356514200583901476269219202543930500958558228183; - uint256 constant IC113y = 9645085522175603998941786443086580171286497248825427720299574774617600244088; + uint256 constant IC113x = 6048618134288079360104485448076929432685359297294911929407159142724989478981; + uint256 constant IC113y = 9722651451709132285779677310347435187135233964032277035256451724721908006038; - uint256 constant IC114x = 17338137839635982277991906074653239533155644333219644464761798281431294280269; - uint256 constant IC114y = 6290334265050211472079737607789073489502527164934493911925515663785327431569; + uint256 constant IC114x = 20013381896799245340531723622200060299477671068804707481559044931100984514445; + uint256 constant IC114y = 19142437057773009982225845852176959263165072020131984757914953227023825881929; - uint256 constant IC115x = 2704389566854574058675609155167056191210743070062729676639930090383694578266; - uint256 constant IC115y = 7813676377320242603154277010299246889725917320140677864755622354509157929183; + uint256 constant IC115x = 21708038979326574523029913014290690104542769618708800361043183297858029758269; + uint256 constant IC115y = 20141045149769764243850948180059184093085096600429959457642393349250656086739; - uint256 constant IC116x = 18469559339974281217341024845818313593388425525430363359078671973442474535148; - uint256 constant IC116y = 14689801898811424260521960988741276607192917439354253019525038784384084630226; + uint256 constant IC116x = 2628267100397962334192883858844970169329423547766048042624930271584933812734; + uint256 constant IC116y = 21005050966999366304382261078754861139590548726589293793754182211231669213207; - uint256 constant IC117x = 16402703267539350941323400413560176995694187103047434576119933660058797151600; - uint256 constant IC117y = 2784826682847529525990998098967821698451903232105891120025418617357403364473; + uint256 constant IC117x = 6600555417161608059064853739820756279361438097971675901390137733810193170378; + uint256 constant IC117y = 15927730953447528101494155202763996620474160597277366946163245755514550981740; - uint256 constant IC118x = 969014865944161842084299466003103150689237689706260765037890531357026634931; - uint256 constant IC118y = 6329558406260245201014176166491667018182838496882161888340850941834187106668; + uint256 constant IC118x = 4411094665113205847064080845275963257564846583702099678172470256445845850943; + uint256 constant IC118y = 18120230204253317710728936524333522312722354367890071431786027811056117025678; - uint256 constant IC119x = 16640532691766040187717503481739902297688758891615808780548179293898023187388; - uint256 constant IC119y = 16504776601348750957685246330212640437524940303506152619427941454744698733484; + uint256 constant IC119x = 9247805990905643533150289702533445435987526910296696312207964827907113730883; + uint256 constant IC119y = 15459915956266396989921031602484925557895885593346114726380836838205883515775; - uint256 constant IC120x = 8273162784311594190344081659053045168089584599175196348331832659477720672780; - uint256 constant IC120y = 5821425617963677350702153242908209513238899812649634759387804492457188734196; + uint256 constant IC120x = 18552083157923674766934628099415637258242158662476291496469975092638235491378; + uint256 constant IC120y = 11838369647589770586182267819705330167744551191513185278776961544581414567331; - uint256 constant IC121x = 431906966595776681371029448760864721988551351231193776520393897314576303709; - uint256 constant IC121y = 8702138831021286191962531583052213672845531574809502129829529459553690805358; + uint256 constant IC121x = 16949908582857814384688690287151407664474876089486466502994428689683792094076; + uint256 constant IC121y = 7808814250659108500359927202986552167190380098921463971854775670999650615941; - uint256 constant IC122x = 1410266164306244794305370951529663180823316614384089587942175632959524759905; - uint256 constant IC122y = 14920546026468776515567646597084079553889125991407394164687634040570545756098; + uint256 constant IC122x = 711282848291156069193819891306399456709471919453412215910724097449705163580; + uint256 constant IC122y = 14884748204609131644728590064058492628281562495892655396553875865621646803389; - uint256 constant IC123x = 12309536445851925810513909384510103261515956535668344311747426508204566806310; - uint256 constant IC123y = 13744993004501439515247126391669668450865257149400028875822462285781048886869; + uint256 constant IC123x = 2032657364747720067788228908783275683380046358026801645141508415713502695576; + uint256 constant IC123y = 5914363038820663995500475547244658109175992156745297111797265522637209329129; - uint256 constant IC124x = 9415482638707163687932265162796247936570305676530917790590980668624899566787; - uint256 constant IC124y = 21124463989116201422088887527797104494335837104081908864991070154148703837699; + uint256 constant IC124x = 11623890905067967496976882647724420211411168496767629274303031438664673072899; + uint256 constant IC124y = 7810560704156315784781146025507474227070861999624266669582525808965551210356; - uint256 constant IC125x = 14918995992655271689867896090772893874032683598951697169263508967975447696547; - uint256 constant IC125y = 7531235987714539211903518886970350691292724847274846213735488737800951921574; + uint256 constant IC125x = 18560632303762789206895995199754636841168841127106904134341952455964889809012; + uint256 constant IC125y = 13288364853075937532531006646240143980461572456031995409723149280721744474226; - uint256 constant IC126x = 659764501489444248190099494920370762968605374544632596579303040509347743912; - uint256 constant IC126y = 11803519384877816897709440997701941076555121987247701995039174154470762554824; + uint256 constant IC126x = 19264146345909878556634797069721357655430649782493044589120367598730523176271; + uint256 constant IC126y = 16537555075924670278259249342717254302397822705255940699388461018782847685199; - uint256 constant IC127x = 19585672717231500855540802309320362856132177568688663344439189646513832609623; - uint256 constant IC127y = 5150630292675188733803864299768712059177442573837352374775428243831450131264; + uint256 constant IC127x = 18409369275573301574619959038169936117676211228320612232292676814821686152475; + uint256 constant IC127y = 18364708213450552541060186561219057186022508025699391603481096704697097101670; - uint256 constant IC128x = 9155422505324942635466936402234093327126640317973196531929960220423081125636; - uint256 constant IC128y = 1132465359520060482465620414384650664369396179863519151911628029399018023233; + uint256 constant IC128x = 16603583707734891143947689725756415885441416036736501052400305561338637684925; + uint256 constant IC128y = 12294097766471153228685874474175466650643563500271025428433087670631408216694; - uint256 constant IC129x = 6412067070188191206313576697597954657675545034647020144248694718755324805615; - uint256 constant IC129y = 6386915259274818120083639886119718144099940527126836384693703533190267632761; + uint256 constant IC129x = 5667709649717777985775354706786769093961746337322193051000113452636492151903; + uint256 constant IC129y = 2666085764305874495571197233418226842254451711691990453531974227538954943875; - uint256 constant IC130x = 19737628089735963496443090482324415390780715134529916428370509324619707511786; - uint256 constant IC130y = 5077084655026381719341859801241451441731414124235602628635645148448163518119; + uint256 constant IC130x = 19468647181955157674880368527020754909019308794770458232819091146973500408498; + uint256 constant IC130y = 14857254276929761621971861899058895357258037351202126760822205122459297306225; - uint256 constant IC131x = 12293127671780104221271565448165814216173136261432126278488950939243790221431; - uint256 constant IC131y = 6642512188247340556620625316942538156592625511551409831964859449475937209961; + uint256 constant IC131x = 3993477599721721604310010009579446878090516190588315447834584544997195548469; + uint256 constant IC131y = 13839869003639583024522824954139828895382556977095241719782081462757786158866; - uint256 constant IC132x = 1798043292764608090975672112703630653136215805563370145237014819565458422979; - uint256 constant IC132y = 21687148062363711295925780902503054829890024574067991267573904889220906876600; + uint256 constant IC132x = 9747203976224633275141173978998720637903083620518574249440111613664541856374; + uint256 constant IC132y = 20216809872013511250437562483937657734719839914198552137947026129096272866440; - uint256 constant IC133x = 4529392218357174417699147827137281935916947311229652132219119313523580192764; - uint256 constant IC133y = 4733953237490399775017512096113933713784650689037761984287562289708936384358; + uint256 constant IC133x = 2019851270530793055555406494925258249721067552955022368908740594992851683739; + uint256 constant IC133y = 10649443098974705002532371579050808276464248857623660803039520918649890810673; - uint256 constant IC134x = 14214002012662218265809925298869712237550619236331963061105329915294991617539; - uint256 constant IC134y = 17121763666873517782646044837366652818285206685312235727066011813711345408437; + uint256 constant IC134x = 18832696095432663594985245243011442607553584415722515917983902266260918277504; + uint256 constant IC134y = 9257038651583496131618544363544938368215293283178488336663406253840268730459; - uint256 constant IC135x = 9266509597275034201508175144195970926209811708631599372000953456110862815645; - uint256 constant IC135y = 21278684439347810521198014846683852642935595295062434704316223688822331119877; + uint256 constant IC135x = 21190214748248193765627649901400140672969547275926653600673506270548284601170; + uint256 constant IC135y = 63757747482747443939717567165344222313939084149086471572442410086497081822; - uint256 constant IC136x = 12395456059435207793972164585436949483196671128868708309038683147671019448409; - uint256 constant IC136y = 8918309779009409678520962946627496599219654034550213506869495872488001468076; + uint256 constant IC136x = 18526425203634124373757188172952677168724425884917605528462540460363804588339; + uint256 constant IC136y = 11304013815724356479514091124745985753830282765132684838064879749586784204770; - uint256 constant IC137x = 18861853067527573731773852077727112989998264356359923368924656779173162053723; - uint256 constant IC137y = 15941973470207367711894935827547693521536808914464978524480638199148145002729; + uint256 constant IC137x = 1367529584382342224378160359347210505958549580312935489093831349593461137930; + uint256 constant IC137y = 1749780152221178449019430253141471316968916492434884088478602554681142233938; - uint256 constant IC138x = 16059280136896388151504464169198584910311488493527399684382578759827447744071; - uint256 constant IC138y = 18918277708416945600712768709484098142306394509000917049386746426804174408123; + uint256 constant IC138x = 15401927103319854196967379260676812246142322877904565669258186116407228546950; + uint256 constant IC138y = 20337467568477203840386251704095022942324987988008464641448622467635719520413; - uint256 constant IC139x = 6677870054144222691152638974103459565036534535634910318263037361417096935495; - uint256 constant IC139y = 15271678086193340446877116444868853230751898603997001444418564149426246481723; + uint256 constant IC139x = 4693222297985140724607645520525761730168163488827410206710225783730739848329; + uint256 constant IC139y = 4987472155742957155255339299633465990890938072864035465760556353670211069167; - uint256 constant IC140x = 8075190630223360275889737609695539630564859017613074224424630497049897728097; - uint256 constant IC140y = 6088959624789235896159879130942091614931585607864890603372195920943354116300; + uint256 constant IC140x = 21014441011272582992961552533064850409892122321059500910615059744086488123391; + uint256 constant IC140y = 17795822842476521259936038723603831376594763133559068592439075084611360889853; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_nullifier.sol b/solidity/contracts/lib/verifier_anon_nullifier.sol index 0c99b01..f711021 100644 --- a/solidity/contracts/lib/verifier_anon_nullifier.sol +++ b/solidity/contracts/lib/verifier_anon_nullifier.sol @@ -43,29 +43,29 @@ contract Groth16Verifier_AnonNullifier { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 5484373638915608486871020804166539520782909040345505335019959652136228862082; - uint256 constant IC0y = 16138277411069907720477228076440687453311854575356818231417756272310801661588; + uint256 constant IC0x = 16230933491573272302611719458845344624855728750162891642866513882817335023763; + uint256 constant IC0y = 9738735788651976754354066625746283378892403900251675495833896980467402210059; - uint256 constant IC1x = 657611904883114148980717005767820105315776575523580933462233892133390721686; - uint256 constant IC1y = 3690011531716382218745803104163270083920150842903711282044842015835943598950; + uint256 constant IC1x = 1163842458808535051946051840943001556644655748133969689048311513087889154836; + uint256 constant IC1y = 21726920671355855198658077093919089496408970815086073879553554946002789949422; - uint256 constant IC2x = 13247301284400305330080530887135251465329343308345822132754291671475418335661; - uint256 constant IC2y = 6878027108417593313264947615215679812389458074470859941986417727720332868266; + uint256 constant IC2x = 1225781092687525924332891603981148455315451654139043144662872859837018759632; + uint256 constant IC2y = 21242800151846356516584525309305784164518450310362576831663561626393252597228; - uint256 constant IC3x = 12122806794972194128212202542170444918567562037253242662728390689220136089417; - uint256 constant IC3y = 9885901744875470674355026551458972605308247499314156850898233682886130241050; + uint256 constant IC3x = 8162056598752017117514131007722258752287422768812672868866820095759582789045; + uint256 constant IC3y = 10646953337183794927724030599175063612054590948751924349695705902911140894391; - uint256 constant IC4x = 14497189114754949587485834175427788983830001040470111882678218991459557006481; - uint256 constant IC4y = 20830021231156123029529082857782030827870844726616623033674403796120242993032; + uint256 constant IC4x = 17312892715597210954089422946457133080576252386054500351373865960461254801442; + uint256 constant IC4y = 19875603640297065498485795247138179237615289423021308403421869017213335707405; - uint256 constant IC5x = 15185920369074896375657194229340428184369591270326493422044278017722304487940; - uint256 constant IC5y = 19431411716277310851795675028059565579151437630225658811235304233499648067653; + uint256 constant IC5x = 11581832691919697231420341037859674297175530765091118264498413181643314317427; + uint256 constant IC5y = 11965734970418264332379367950138285842175271965167001507496064468902656284588; - uint256 constant IC6x = 13045447923950887968308059891638935794209679677588887793771333234932902547512; - uint256 constant IC6y = 1960124371120172285328335936511540489447355418368729402128803121783956301995; + uint256 constant IC6x = 15625019307246710628316592649855891451989231586840545787827432399174225528345; + uint256 constant IC6y = 4620385424658272548962802290630854327869292376044769793323337235961690955934; - uint256 constant IC7x = 13884254722279292890371513766826920769800478559978090718831205926891319150867; - uint256 constant IC7y = 18591227596650157682708874635479026538112866889941276426097162344817325579619; + uint256 constant IC7x = 19714555554386840403857020077121977050614674057194809888976789958473274010078; + uint256 constant IC7y = 10224984461759855124406072505531296910498895533396816366610574442500317493530; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_nullifier_batch.sol b/solidity/contracts/lib/verifier_anon_nullifier_batch.sol index ddc96d7..8fcb090 100644 --- a/solidity/contracts/lib/verifier_anon_nullifier_batch.sol +++ b/solidity/contracts/lib/verifier_anon_nullifier_batch.sol @@ -43,101 +43,101 @@ contract Groth16Verifier_AnonNullifierBatch { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 20844143144179933686367702853401659001635520044243582300318059483239634177695; - uint256 constant IC0y = 6956893127987346586986829449841068920703970681116433429161149984274729955150; + uint256 constant IC0x = 19587821606915970862618164870263474527824624840516387050350574629332298149104; + uint256 constant IC0y = 12516658397345478170897389273463286096192372064526437761690827507375976321954; - uint256 constant IC1x = 3145257296588116228951217917659437011153808048295016630750634661573227655136; - uint256 constant IC1y = 11692686976241793602361646805224113669146832518433186263786203652119894682202; + uint256 constant IC1x = 16981621129924165151050821099922903115153021312848299676360295379100569716030; + uint256 constant IC1y = 16136072280113831715053737019647310411579275425847449447569977633116344059329; - uint256 constant IC2x = 16258810049061785642786324998613222807846599083981592205168287535492316537730; - uint256 constant IC2y = 12251560167068319041987936419160993971679197422612698232359757036111894372663; + uint256 constant IC2x = 12066061978110509089307547970524001305662299491212080327472635040271732639012; + uint256 constant IC2y = 17510449103236216006448693381289206424553047450624918004363870355180987174165; - uint256 constant IC3x = 251781136374948237986551327298197994537136901024713712357336516445425740592; - uint256 constant IC3y = 6227059871063762497220415891053961379240079035599643882420648758298833266542; + uint256 constant IC3x = 12130609149476401549852689697813884338023869790523900760858735100930272132449; + uint256 constant IC3y = 17800507313578546274924048514126144531868970073683804209060470744632725658810; - uint256 constant IC4x = 8649560149784748604025905683235874568511947437413239525159237000293037617298; - uint256 constant IC4y = 8747524132149016931009206153273351341814570313184540398314387764445409252158; + uint256 constant IC4x = 6305854821565471964025783579108537928438604540053205844007619941386508187001; + uint256 constant IC4y = 17361632757273560168345079617732063366500601783647831084263964978779619560080; - uint256 constant IC5x = 11524377559110038208935035612054843778802434027463732360891441909399945816797; - uint256 constant IC5y = 18828274067104221019896291561320103025121737743752362258177323570247152671928; + uint256 constant IC5x = 1027305245501128982642713179116254978978361036363851191970498759003563189083; + uint256 constant IC5y = 12545844693170743449393218917740623497170800080542702755997296210784849182795; - uint256 constant IC6x = 7385161427131949497271670148755048425729464306154555291161088833019700279471; - uint256 constant IC6y = 19079861300823810080891280375686529744645001290941546750584479382979657289246; + uint256 constant IC6x = 5956345636122088290987521591263635126287793499449239362871002461202364520344; + uint256 constant IC6y = 703290006327833885872540706766026058937841750513854249480231586103994803375; - uint256 constant IC7x = 17934278616854511206424984073030417465445581765105585112091416104033803743042; - uint256 constant IC7y = 14710666138261018736711867414590007817342686156878524386850840867533993802458; + uint256 constant IC7x = 825065871960223444665328185260563082553079847634427049761622977548285426200; + uint256 constant IC7y = 12797256227330138165169601116095976903657483792046690027315666313416937819384; - uint256 constant IC8x = 14707384838160911457918999203818273609600051806011767213346322440794319155905; - uint256 constant IC8y = 13237987873586454942683016892111323980921950273085113968390467646435158084741; + uint256 constant IC8x = 7030373916777840601366172942241773730637677416014446307293816671994044907574; + uint256 constant IC8y = 1845466669966157080218959902015651614579529630939968642923932042338973006479; - uint256 constant IC9x = 7562227225802748091972005428011361130005690253417511123075521190518795738149; - uint256 constant IC9y = 4661931025029160592061867769468775700733100438820387043571605053268353675276; + uint256 constant IC9x = 8532553306246268765167521876444884767617189258276115651992424490225441989486; + uint256 constant IC9y = 2848427766974865830629805139610849643606077825780685522004862886382522293609; - uint256 constant IC10x = 8832584362940380960579414511468218447553605312077025224926791197187056385556; - uint256 constant IC10y = 9302218887041506854463034373316824720242916558732217573892008557715786667965; + uint256 constant IC10x = 6432533666444474115138656891431639523272709482301253656123362352286162299845; + uint256 constant IC10y = 9470172584526666217580270758187396550945479099905000655644021939273811404736; - uint256 constant IC11x = 21209555931154727846096629287250005552280019040728430802966166542147340144233; - uint256 constant IC11y = 2071566621746845771862041312284464859664491179818305304210166050356392949705; + uint256 constant IC11x = 4768614604548606341190313829646046453553247827909445373653907024632972024239; + uint256 constant IC11y = 20160864221741898031928189052515195595542842578857188127167736568593502343606; - uint256 constant IC12x = 950277162574048517298972242135187100023190595461411049273998606674829666008; - uint256 constant IC12y = 13575683112393817689056421975285185373895786482959786206453183726981837783596; + uint256 constant IC12x = 9489007876212332375872989450041452476052592546497807953478852860385450706236; + uint256 constant IC12y = 14168911504126936908387130703530724716827592189970322125888660112124190651178; - uint256 constant IC13x = 12035747924156260190306427775717226720739331292774066045356563771007872767717; - uint256 constant IC13y = 3362253945111797894473225828901933246093284841324718877342445660643508802152; + uint256 constant IC13x = 704069654676268564359213364058157075821176257629275711905854874765804325979; + uint256 constant IC13y = 12844580913162081106152311973293228038197394027679345952130534159321220015376; - uint256 constant IC14x = 14137346988181889936217575935826112345993273796400738991890809144357301565496; - uint256 constant IC14y = 15637121408408019060319858805343647729218308519116021027187930932370871262676; + uint256 constant IC14x = 13552897642741968666662344412514372393692309179802594400466735291466621736363; + uint256 constant IC14y = 21276814415453803084882659304463141726900483647803896397397113073962811353624; - uint256 constant IC15x = 13762873643526268013947632485931813861248721924789455076140043231430980762390; - uint256 constant IC15y = 9963293110830377293739765877755694764499419331215622126241313239553878025491; + uint256 constant IC15x = 11234370911514868396176692789531234034514401021906955154286034689313637516195; + uint256 constant IC15y = 18393239210794061490244141756894464721210082309051783680022690717123998536184; - uint256 constant IC16x = 16692574613238032287283652982184597546335524897465441956026040107887285592543; - uint256 constant IC16y = 17292178457651461126524604559702058819667208809285906910210631878380949540985; + uint256 constant IC16x = 1801755298088264955343427365612017643044827097495997513929782501541954519187; + uint256 constant IC16y = 6726099558951969068848667472250837367480975810359213326453222823037379393700; - uint256 constant IC17x = 21006997381406654206993340273166716734805806423755224685869754804308263604614; - uint256 constant IC17y = 11276113338642452423709056895012512446623471098033288820386384037599973211369; + uint256 constant IC17x = 20379554378283953361374492640996583725146015047559821472032177602322970473764; + uint256 constant IC17y = 1239396669518756491774791139298995169194013575244501425273448026148873175874; - uint256 constant IC18x = 5549790547342287258223232153342939363197412516882599097529421254710739277932; - uint256 constant IC18y = 2321980957868435036369134816018219753345397660500077204638931350984124152509; + uint256 constant IC18x = 16009842491094353645466596594458042088802347092939596329925468597529615238316; + uint256 constant IC18y = 1132795734450589743458042146840326078995806470800017120583065295063820547737; - uint256 constant IC19x = 15576570213143935319990221618758579058427975921328599747785461731895205749979; - uint256 constant IC19y = 2934186338144369040954708903760643286101176787266350772513796084984222769874; + uint256 constant IC19x = 17974219947753223546183978297650824420677037203836680654497700002648738300424; + uint256 constant IC19y = 6879985582234965908545924316328370330809317033354440536016137936788199353147; - uint256 constant IC20x = 6137477004926598404997675240907254540828053394371866068349832466271296672929; - uint256 constant IC20y = 20888861283647246107329551100697915011175737920485206165339138558619907573843; + uint256 constant IC20x = 3558272464080940176815697615378195722021648872189350348597400269717467622800; + uint256 constant IC20y = 8233010798013604400971081969711923627897832003090164489361391838439952098255; - uint256 constant IC21x = 14463409262299509615392506481758018285658547737656813334743931121364861756703; - uint256 constant IC21y = 7332787039324208062358154360486138008259450181030941396848043512484238275757; + uint256 constant IC21x = 17499824046709803763941451091950412143548179984624079405067131622333652870134; + uint256 constant IC21y = 11760873687084919825179257164589242271740163051214945638351507285819730921551; - uint256 constant IC22x = 16601356363302138980638118097559879425695247168438568916519789560117559369274; - uint256 constant IC22y = 17787921183075222020103570772036143742977525428618366807704027634151186727940; + uint256 constant IC22x = 12442089851841614036160572255781270082025405368305196434106429696092784316210; + uint256 constant IC22y = 8318420662338711375627449466098698740275613994793984017621210331110210947060; - uint256 constant IC23x = 12583431235651781757939013640433576160419876103048391410427308386104111565232; - uint256 constant IC23y = 3986398443693889094738419603281333618352214730101632334117232653906612934881; + uint256 constant IC23x = 13772494608798483687433026966666368508406325625057684611507284835769768951806; + uint256 constant IC23y = 8542625159871642935805647872759866697810028015676122255736621276118789213545; - uint256 constant IC24x = 3853568607428240670449556852094203559518256205705378610563709475235813985869; - uint256 constant IC24y = 543064818712667001693516860666177754509195083882304081179747934873049678706; + uint256 constant IC24x = 1847914904992150413049205424580314914199911440369356891218819190840804620817; + uint256 constant IC24y = 8705302895321158150451557564914815426637267574325521351735312369543625172447; - uint256 constant IC25x = 2885563210258556414381788942320848534195847749693881492631885970929346938859; - uint256 constant IC25y = 8131940318918107670107005557739113937288882470046042271398018679856018871886; + uint256 constant IC25x = 1015201369193666896852797874153283482080507710554065558402282342255318530461; + uint256 constant IC25y = 13266082683105554117564203481375680130255467526636324229720176864314882876685; - uint256 constant IC26x = 17010995670940491819617933270493324753886079844847190687868033412180995569776; - uint256 constant IC26y = 1131002585900701640305315232975026396983461884863407554004202067072144971084; + uint256 constant IC26x = 3514545872499504183608853311155942268371047471634215910974493208308427807162; + uint256 constant IC26y = 9352791444564468747363251138586475523312909840779658680484496628234046487424; - uint256 constant IC27x = 8218092164315760638693205679360581362550320900615925231277371834562473628432; - uint256 constant IC27y = 804708916368827372063223656560578153797821838602606304217568072164318993236; + uint256 constant IC27x = 4085864851309578023289679055049192024671993174246083440927058258079332566910; + uint256 constant IC27y = 2760144108066512852276993514229231371417323855390429465976428638422886874025; - uint256 constant IC28x = 5399094891216602742965040821422609449504212935322660879066435153850561721165; - uint256 constant IC28y = 1265562530391696201126288116617589607013674244193599604325171580589223550213; + uint256 constant IC28x = 2457782115220767177669331863101889548298373777837472605054351813751751753668; + uint256 constant IC28y = 9240011943142283474085019923938273212477171544191648681516746350830087634003; - uint256 constant IC29x = 12663247164972275544017007748295885957218341893889185539064234743460082294717; - uint256 constant IC29y = 9413051200923723465055492328404732423271148428325190065591941881643336354578; + uint256 constant IC29x = 20873166056006531455992593386797266717489141372658475286367523383755511209413; + uint256 constant IC29y = 18049159861531545255982229259643006253333013506770903936141022172253810766809; - uint256 constant IC30x = 10229493101680001535059987062347611183366892099697060172642147707296073449034; - uint256 constant IC30y = 5341823103341504835994668879856735786794919965665449958641465848415231797279; + uint256 constant IC30x = 10716950565190260544266456862848359197500422261278466900889335081115973979688; + uint256 constant IC30y = 7794360952812280093833806570194931537760764326939490029977449203544157172192; - uint256 constant IC31x = 17299647136322859689775136480319515957049987852882873899315494679093188679533; - uint256 constant IC31y = 5603736654692809267331406367699483579804529124597898174480040309340108654851; + uint256 constant IC31x = 9927855799433500460327060816297572695834481212298801761780771856698755245235; + uint256 constant IC31y = 15400439729157243262439858823993417903898618555759696042149069354567900531170; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_nullifier_kyc.sol b/solidity/contracts/lib/verifier_anon_nullifier_kyc.sol index 980cbe2..8e1077a 100644 --- a/solidity/contracts/lib/verifier_anon_nullifier_kyc.sol +++ b/solidity/contracts/lib/verifier_anon_nullifier_kyc.sol @@ -43,32 +43,32 @@ contract Groth16Verifier_AnonNullifierKyc { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 17253658561769030408831319377386363377029954877756637156765324323979498651244; - uint256 constant IC0y = 19447845550620157940727879792806763383315811925512356155840550493755067053283; + uint256 constant IC0x = 4214175458773124704187293292221627749694143169547722221312241850694161855892; + uint256 constant IC0y = 13284801841560776837611343971929141109508708025736420123545492001672173057753; - uint256 constant IC1x = 17691860633635445596011992135113931036771678205360067089611644453475239338807; - uint256 constant IC1y = 18676805762762822944272364662845663235143437551624413350971351487210974119996; + uint256 constant IC1x = 9992130964721808580669980494295911999943646476044734578210479727337311421961; + uint256 constant IC1y = 14575295446873965926562079868829494927861674880672585420878622916370264886471; - uint256 constant IC2x = 9359246353884494795775060227629575241229353985866987187619420127010361508034; - uint256 constant IC2y = 8388517062694554522982567663342157522410417672271312375252102792907200482451; + uint256 constant IC2x = 14196828397593308802597029699711221766222965688720078809576954216634261709074; + uint256 constant IC2y = 12771640445618190414013185835168139091402747409225457899749677184598098047386; - uint256 constant IC3x = 773129062986033561443573333661563760243263395022680620040102397288742855800; - uint256 constant IC3y = 4437956675204159891915247122343933381491595698869654079918360565183613194228; + uint256 constant IC3x = 10707210430540259358242058935750730766115166100869315221235467739015320465405; + uint256 constant IC3y = 4864219737020185849420971241383261375578747642381137299241267374862090346944; - uint256 constant IC4x = 6645115745373935053727950422910462497885276404097879876376038787546991344584; - uint256 constant IC4y = 18654672726411052252597755716024854329414673812512280690182667130526523404234; + uint256 constant IC4x = 18272638173203460767448924823978938082706620937148187961068944593596686394856; + uint256 constant IC4y = 10002945068207711668035275898686847482327315933383815097137469631868012832703; - uint256 constant IC5x = 13059522435858163127674389635682821055318628019574081126949711242545685283515; - uint256 constant IC5y = 20429805133317088848505942320052564964645959038790135294034876010255265663903; + uint256 constant IC5x = 1815645699356239530714952203901705564095436711032360122033840481954719495418; + uint256 constant IC5y = 9496873120190555990744474794112861262304503972945430664810725802086009382859; - uint256 constant IC6x = 7081897646707329390732533302866159157927438661712338489301723634665420156232; - uint256 constant IC6y = 9720758558280938038606112340132128606630785889582047493375239320218563835995; + uint256 constant IC6x = 8467261299490722918471458428693146428517337579958039966106680947656198450142; + uint256 constant IC6y = 12297202379214135448667365415283425248552585762466250086975091439696896027774; - uint256 constant IC7x = 19097209714030584366164828474495137409508653808793261818839392529382542861874; - uint256 constant IC7y = 14963596465851021268645069274158420492995798424574621453984746766086070430557; + uint256 constant IC7x = 16680050457960258152847240445915803935090931781859950303388457065301206841069; + uint256 constant IC7y = 15716877444927676850548669146824906544624517431431342246823991378577438498152; - uint256 constant IC8x = 2286325282310659848988744116651496718877341703991542322837846213613080078754; - uint256 constant IC8y = 3467490857234869537116682593234908004499601628170260705267603367015758479824; + uint256 constant IC8x = 7406101471033066350473781194099217503804932788032563128253295971436039036381; + uint256 constant IC8y = 16128050235475662684250975639163054622615338861726070347785175777116316954893; // Memory data diff --git a/solidity/contracts/lib/verifier_anon_nullifier_kyc_batch.sol b/solidity/contracts/lib/verifier_anon_nullifier_kyc_batch.sol index b97aa3c..e6abf4b 100644 --- a/solidity/contracts/lib/verifier_anon_nullifier_kyc_batch.sol +++ b/solidity/contracts/lib/verifier_anon_nullifier_kyc_batch.sol @@ -43,104 +43,104 @@ contract Groth16Verifier_AnonNullifierKycBatch { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 20853042574020946235840302632951626448584729217430463073658625252653442234470; - uint256 constant IC0y = 14503138457722137782191667133387775512378441450608154667415400997876588375756; + uint256 constant IC0x = 17662610428213256644813219563522053977019593238203593252026575307208745102939; + uint256 constant IC0y = 7830505160689090090440089278934177510082686211172967217820449518829674827779; - uint256 constant IC1x = 9917108883241745455761018857293725080986600904966561402987858446669928171562; - uint256 constant IC1y = 13591576404881350424099489953236979715833180126901849937308367347767610003465; + uint256 constant IC1x = 10346604293986880753701355463794882998759843061338973206428904565462396039439; + uint256 constant IC1y = 21877736883548512965573565860735886841675382384168845769722396710288481409415; - uint256 constant IC2x = 3439313319113787828822932825613902061625901916953552729570520107357795750003; - uint256 constant IC2y = 9071769450731382460996101819929952295744188293777029244789694675101186914880; + uint256 constant IC2x = 7285334413079068756573641978600211028803259798027134112035544835812253470781; + uint256 constant IC2y = 17866920197607400586565288881695320789733000599142174155551393153570151092438; - uint256 constant IC3x = 11071390041396097409656810177854839065668652917492828205135215218787046170986; - uint256 constant IC3y = 3272310063044466086764292869007916039227746382830358278319476052921781064725; + uint256 constant IC3x = 12094173611416162337842357160734417915681180979965703971651314502280295978226; + uint256 constant IC3y = 4336939781541456769560405175733313452334883395346782866272388917787109137924; - uint256 constant IC4x = 996881781996032055965059788092723706548950481104118223959532856028689400891; - uint256 constant IC4y = 10532644959511591332308661306141830757428321012840862531511843489701188531007; + uint256 constant IC4x = 12893139129639077593856798836226766303525580094346393915138768444827551320753; + uint256 constant IC4y = 9643885365331110367924443516560355173400296163015137597017514041264158539397; - uint256 constant IC5x = 16385079024538141632411180902174351098878184968791691093347655199291480888415; - uint256 constant IC5y = 12145168420230320464303312360648053440022739646635064174869624146870557981618; + uint256 constant IC5x = 7419266347015262130402163811300949112462350104504140825550385399139680635902; + uint256 constant IC5y = 6803787409534015455733249893239790833744853990019467147708575683362373057089; - uint256 constant IC6x = 3992613102026963086376267251279994644621145284197309267871587996886604272592; - uint256 constant IC6y = 14963328476320115013495064157131701351415433169672444967080683342149793144980; + uint256 constant IC6x = 1862823323932686024396593640932517424493437193201939167019614621935108254065; + uint256 constant IC6y = 10453107787728230175659930666158677682400831203142179228639446944333945857373; - uint256 constant IC7x = 5981370305969014820267670759122547893731675070596036612273472072253851282228; - uint256 constant IC7y = 3438141511037073702365606004410722567958864390457606755249640661003617200959; + uint256 constant IC7x = 21657052927245507888665469077476773827294315722942681984779818184446803774212; + uint256 constant IC7y = 1144056922100252222359693929550999973147532922715401285654713850353392093166; - uint256 constant IC8x = 21547361705076824058864897700975767421445572004417178472869801085917191751053; - uint256 constant IC8y = 12999813802284380841701554591228638984354832042714692917690348439711845925786; + uint256 constant IC8x = 2445619981193440409765778231464156432401371937301797340627848201174961281928; + uint256 constant IC8y = 21609178651065795954371242575766011431777589711841324585333609027312850163571; - uint256 constant IC9x = 14925705040521825434725348380587205868708787466106833983126208243739784325880; - uint256 constant IC9y = 13758617988846944266119557597035763290845707283246935944438721816538364307440; + uint256 constant IC9x = 2642428202108574845241440569753489219554368099310373248264822642570571138339; + uint256 constant IC9y = 8606178243782529634901788785054734861848259464147565131036750225908854331216; - uint256 constant IC10x = 16238678108997178508219583626087543367523363104143821500531018331128543816027; - uint256 constant IC10y = 20988334055882823813676265253003773967912918491946607153880822125279265295099; + uint256 constant IC10x = 18480938949539583122193629564579456741615642536442983380411160088340117620707; + uint256 constant IC10y = 18529840295865541058815666886572161903696457355366594477558159490888960921163; - uint256 constant IC11x = 12463438669969160987739884097285949261976866404968861676769237436058385801469; - uint256 constant IC11y = 270011245713606791865522697127318460224244162144440036914608059839284140679; + uint256 constant IC11x = 12636408345473815363684077864028446970269018773658746984798491407973546651235; + uint256 constant IC11y = 13520780254338405634141033140843697547933948596622185538251005778124223888667; - uint256 constant IC12x = 14425667004891942326901126602922354917481325657272065431210263120371031139386; - uint256 constant IC12y = 8309982229703456513092026779649997434002091050319895182314276093188954677394; + uint256 constant IC12x = 11729507187203462972145203070077736932410081151286322695685678174810360986161; + uint256 constant IC12y = 13015012468311368245890094246568763116929434919813878023667882545543950432099; - uint256 constant IC13x = 7465033032486596700975998529561351608432568332029212554720368237664678873395; - uint256 constant IC13y = 19595443713093539422546405240457003346980791492404739217874241019739472718381; + uint256 constant IC13x = 18215072169978285741216618958084616042925328390195974446650898807516175694137; + uint256 constant IC13y = 1984971998239457461917179196314085248098609830859570392699477026448286912967; - uint256 constant IC14x = 14691687249031531163869527355048787597122549812332779621162154509937138571924; - uint256 constant IC14y = 17802893028884323977106339050154399655146360203535885909201781361795599138777; + uint256 constant IC14x = 5406886929107805040595453776728203921127840142779122609888714199811015124188; + uint256 constant IC14y = 14552032591867187397725707513338190078188051788030338427246599651562252959951; - uint256 constant IC15x = 11311460953090916038412938363173223681102634415830351013156281568159118324573; - uint256 constant IC15y = 989424361042903697721304390768895807648689453596077746086797179149951408171; + uint256 constant IC15x = 4255828817688137031115643784732586407352422694821098423235777511603109116467; + uint256 constant IC15y = 18577399166189065943225077881935906900540528681890351061804616706202760315074; - uint256 constant IC16x = 8115210135502535315095755231549369443363739326778462555855100709757443031875; - uint256 constant IC16y = 3399309059585388188749745821681321969923494328608462736591564694635156883018; + uint256 constant IC16x = 4210053272482072484277058067037592916959356297765309470225031168742032163955; + uint256 constant IC16y = 21627917502213372129596580823404528375967541861730536175384685470465644323895; - uint256 constant IC17x = 8057525237113913042507983000939528960621623812954743702785235804447181483476; - uint256 constant IC17y = 11745508255799538715267264369198317129411105677293807565792222040292163514690; + uint256 constant IC17x = 14889185361203526360857595001104916528469455892035828328631683257956572485173; + uint256 constant IC17y = 2936885250154457447326920544222388659750238959522934937817665205054540961686; - uint256 constant IC18x = 12882807096622945037046242519935093674601153177531384614838357303812929546434; - uint256 constant IC18y = 14167183722748533864284151708151235074065479637878014422305168060669442759124; + uint256 constant IC18x = 10199567289736952367832328097491394603239742191147146009298055698587442009; + uint256 constant IC18y = 12072175957003475373759335090032092103024053829183698638712985817934917524313; - uint256 constant IC19x = 19157711982679260432612324639548309993214116386141443298649333176424963278008; - uint256 constant IC19y = 18887459881212198278163366740593313984610163871911225805583022177205802284106; + uint256 constant IC19x = 5501790651389781313942424937674560396283844070101639521431886473550510293164; + uint256 constant IC19y = 10431589653403750538224508026992474872091462706849934870619575548200040916229; - uint256 constant IC20x = 6820016076303366905281218333771319642092009820489375329286304918390680797076; - uint256 constant IC20y = 2011003244794874591620399658770025487624841238441008369549360919209162431452; + uint256 constant IC20x = 7633068091070229432687385808712790224759677789664728994153466364728552058233; + uint256 constant IC20y = 20977231476194267406143080122028938882360511239151509852744360484132865404032; - uint256 constant IC21x = 11041858300928368147282501090696352446503267451042743846924625524700949589333; - uint256 constant IC21y = 18326112349200889304757099732521649558736758992759435858884556656373804632540; + uint256 constant IC21x = 4660640047249595895786142014858657816135831293207046864703674063264974819081; + uint256 constant IC21y = 10162220350205829553353561421032903037748099385809132856525299958633254834319; - uint256 constant IC22x = 19270053956090024762685183355862847807940837944222186876532100272229966284063; - uint256 constant IC22y = 6755707463932868859120703481720189322239061262061342349595686619636209076032; + uint256 constant IC22x = 6166728686622467473650026850037575400819469015508830110086213688241569142758; + uint256 constant IC22y = 17039459999469497080782940042828515626811071582731542832697829077765504984346; - uint256 constant IC23x = 14053076389630026405095058736457484143951784177074765146291105887519279239631; - uint256 constant IC23y = 5781535215165614826618204367105163909125962009938863102327081807253219564177; + uint256 constant IC23x = 12811534522228368734554124975163122963297791564884470212649458267267968509409; + uint256 constant IC23y = 622860925200148307346536412441500061200664123289398434333291998096149060744; - uint256 constant IC24x = 16520121922742730700115206847425977584572662211415479692333894716807168534635; - uint256 constant IC24y = 1097596215960000784908553058258153084091625215200170506677504975817144320377; + uint256 constant IC24x = 14577957129098557464040324998059586038650776177120765101706266230319807776128; + uint256 constant IC24y = 3533852978802519457516798558810465709831858450063182836769700207649104776072; - uint256 constant IC25x = 7177925932485708100888950060980021914147468071168635995447299902061247390967; - uint256 constant IC25y = 10219836500844667480405804775499348980007485977518659417779754787366552657126; + uint256 constant IC25x = 17289299625175941445399680091299211844756446691751949655743597297217038233241; + uint256 constant IC25y = 13850576384074490193716841351843113442645964835316467249147888643283712811939; - uint256 constant IC26x = 3501572605055564424981383194400900888063129293811612920810221741230443016407; - uint256 constant IC26y = 16388010556608225219508510331953863848059248100921826015425452033600132558501; + uint256 constant IC26x = 16710252509253846880613722286341711814359194873671831698177703637282225093753; + uint256 constant IC26y = 1965216602649426379491347306794406373040026952622075871484630462007188544608; - uint256 constant IC27x = 821629801785990279612662785124699542694089690212215734187557850876770421856; - uint256 constant IC27y = 19080762213042567735389244764183591911677853260112860780943095910556531204198; + uint256 constant IC27x = 14798329544285611920573615808119362859842791636585941661849222806901938186721; + uint256 constant IC27y = 11328671377353849071342437741702175801261432877846272530878009218498480440126; - uint256 constant IC28x = 16852281762315476053210814715155070801137202720975023006070913982938627645876; - uint256 constant IC28y = 7213332702185063988587527288845721443807112228829510340283781784592101934378; + uint256 constant IC28x = 15805532140015816324396700145921954150151739746332710431994480604745285080988; + uint256 constant IC28y = 10965618640489496953814098004162557454361322014529500352647158670482737355858; - uint256 constant IC29x = 4009657540500682658456131646734110816806134393092673870093501487131176269366; - uint256 constant IC29y = 4642340153685914773598767712007875167875744207496785942087827910783897016130; + uint256 constant IC29x = 19920020306802990281613437137168536539920359730736161626273264455790963607518; + uint256 constant IC29y = 14476322698683316890411695477049727571941317419568393880238555012089572655054; - uint256 constant IC30x = 2354097312656732326431256481812991541730435396462756081659188095985189268893; - uint256 constant IC30y = 5648911243543082544815214546011075680816809894496626503218159000561356166387; + uint256 constant IC30x = 5909439493895700932554593202401039361992154467819335440960997190670748539547; + uint256 constant IC30y = 12756874630327086363541682824130486736998354813540534346812188560627020504948; - uint256 constant IC31x = 21349175980680327148991838367425372259029351360226383721547593451385165894470; - uint256 constant IC31y = 2226069768655531699819829432398234311723723757156974454812739012506324533869; + uint256 constant IC31x = 17913987795045334044805471750580503112706882087161238172356573243944112908138; + uint256 constant IC31y = 4301004105494189265321475195927558252055109615821360484443973249976134639951; - uint256 constant IC32x = 6889212865028125309464348326210571985659646832435844307314388021016016438758; - uint256 constant IC32y = 3898026925935534773719478862659632823086703925842749427712203456282341722035; + uint256 constant IC32x = 7033519760011410808265433656588665526821237137687551758740221477482782036779; + uint256 constant IC32y = 9853117829963576651636655238186392877860731537315795877386027394448959212515; // Memory data diff --git a/solidity/contracts/lib/verifier_check_hashes_value.sol b/solidity/contracts/lib/verifier_check_hashes_value.sol index 825874c..7dfe677 100644 --- a/solidity/contracts/lib/verifier_check_hashes_value.sol +++ b/solidity/contracts/lib/verifier_check_hashes_value.sol @@ -43,14 +43,14 @@ contract Groth16Verifier_CheckHashesValue { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 21353820865548503329577756525221633465332622166799959856825877352905192473267; - uint256 constant IC0y = 156932616567894649841337587302503574238981053813007972854040490364635182694; + uint256 constant IC0x = 5492411069809074536190709043432696515666548834972422361408003678886022378692; + uint256 constant IC0y = 406881438527049667839050395854500404521533115124164422085544479872024369318; - uint256 constant IC1x = 12322194858529188061062625971813098256741654889417169683222060161781584608609; - uint256 constant IC1y = 20246326882683168066748851145817053112674664250127727211412715232179245157022; + uint256 constant IC1x = 8035863375476283967525030649099206883048590230471631119372564544694184523120; + uint256 constant IC1y = 13584364263519876695321678333368688791214436042027192512295288397565727092927; - uint256 constant IC2x = 8022016804019415581152964105487657307044363981768180695730643477130121229579; - uint256 constant IC2y = 15328789577726767026198857145765587783001722435319756601432638671812565154978; + uint256 constant IC2x = 9375991103254661210826085313716896081872097709635541504871108894716618077326; + uint256 constant IC2y = 15961428662499368698552421711725449999173482922212486474515452982560590429325; // Memory data diff --git a/solidity/contracts/lib/verifier_check_inputs_outputs_value.sol b/solidity/contracts/lib/verifier_check_inputs_outputs_value.sol index 9c0da51..0aacf97 100644 --- a/solidity/contracts/lib/verifier_check_inputs_outputs_value.sol +++ b/solidity/contracts/lib/verifier_check_inputs_outputs_value.sol @@ -43,20 +43,20 @@ contract Groth16Verifier_CheckInputsOutputsValue { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 17387922327858210136617007095230042632426381952166484448116746614272536751535; - uint256 constant IC0y = 4808269916722279091167330560212980163487536845606246009253087821651013005551; + uint256 constant IC0x = 15308814951007083443205786569084327962962579780538191433672533366552748049637; + uint256 constant IC0y = 8763702128774107003295374791373584226274012651578539984434657347068247530494; - uint256 constant IC1x = 11962741450402091371273662224482187613475715473047174085420945320695830737995; - uint256 constant IC1y = 15562574725663871801316953724005672455912364153659295220330094320410858196080; + uint256 constant IC1x = 12024808648526027701103636425719292332555719357499899907173242432192770424289; + uint256 constant IC1y = 16775997490385279692243688370960011943172490960113823528335122379468359519081; - uint256 constant IC2x = 4194677006984027746737437054535462737447331455450175107486916659299631966883; - uint256 constant IC2y = 2965301361541939950387716753816670353588190783366000554173049564598213308644; + uint256 constant IC2x = 14973097755389255107388839597889843324200206629151000222899056978059547689541; + uint256 constant IC2y = 13103701695085964904105091831923298046108363884741474277789092553228988733566; - uint256 constant IC3x = 16410371088360564861123282542907734207746899107639828095748274609891404450721; - uint256 constant IC3y = 14447287810519803612881548625236303993743219400827830956369634309751031524243; + uint256 constant IC3x = 17293558985889027602486931866944271818463717939921090783183597450630981990442; + uint256 constant IC3y = 12321127707567708928614863288574082625008218050912277906471135614872067574411; - uint256 constant IC4x = 14479207206262402603061969459430305401687514000594863504679844985436934252961; - uint256 constant IC4y = 12009372897324578288882118575535211840587775246611243165708895311608262611745; + uint256 constant IC4x = 16458689741282535198872072049933204681314482454510728312299695105487795719962; + uint256 constant IC4y = 559067551041888944981707710094429748882157971972088150165765920573907705935; // Memory data diff --git a/solidity/contracts/lib/verifier_check_inputs_outputs_value_batch.sol b/solidity/contracts/lib/verifier_check_inputs_outputs_value_batch.sol index 43a583a..a1bdea2 100644 --- a/solidity/contracts/lib/verifier_check_inputs_outputs_value_batch.sol +++ b/solidity/contracts/lib/verifier_check_inputs_outputs_value_batch.sol @@ -43,44 +43,44 @@ contract Groth16Verifier_CheckInputsOutputsValueBatch { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 16406855041988402418570886496349002995705712334781538764307269787167911399430; - uint256 constant IC0y = 17062891280301536926110578734915723839095919791367175474506509310600003607607; + uint256 constant IC0x = 5017907966995301432218021439649503662690261199927263094752971253251211841799; + uint256 constant IC0y = 6256371467059537501281089173256708291704698723596497312901113547932359046078; - uint256 constant IC1x = 11251678823358267718136708972991805824720473739361951098088971382598913167699; - uint256 constant IC1y = 18469711726131890278268971725061117935040499355264464748594326254451733920933; + uint256 constant IC1x = 14615071090503946755738248095915895695368716825536923691001458050268475456307; + uint256 constant IC1y = 10983470539766441351465370769974746680945841917628434147848280322455201427989; - uint256 constant IC2x = 19423953215898457742794312283715670756162849208434393145382344611939351119392; - uint256 constant IC2y = 15101345671392435513539926346277398347812084079236470175230838530261517700063; + uint256 constant IC2x = 16008073440570159003476029811077392948740178455372822116051937525854386792594; + uint256 constant IC2y = 3697987433373029647847284609868459522989234743548550944868218732835483231631; - uint256 constant IC3x = 15492432199738522150786104649617971317491878799640663413058399024929325011456; - uint256 constant IC3y = 1849123419461955600672657350930674086732010210918006148127970045557636699730; + uint256 constant IC3x = 10978317955546252723554319222620520227765255465477859955172459621514702134774; + uint256 constant IC3y = 12746658226512620026534407819478614562518350786372391614264912852753325655267; - uint256 constant IC4x = 20556481651461125195829770916680429763969629501376963431272297847840333600288; - uint256 constant IC4y = 7513518309665274486407775216759717009458803864983567865867178158606408294827; + uint256 constant IC4x = 19875071138666673062826344298831859802488283414209314060083320494834124681066; + uint256 constant IC4y = 3288320124967156063753770558436357162491702830417152507154368879781034227080; - uint256 constant IC5x = 18628135598559661868491688440770254818509868496021518701934276504609414133508; - uint256 constant IC5y = 1167819248752988768596770584756471985899166510161687438915119345202702697144; + uint256 constant IC5x = 10217736047728649727742217000438888548649818965805276439707061889865002822183; + uint256 constant IC5y = 8427899546635705267126406654113070700964616560483281782511631308139436609240; - uint256 constant IC6x = 11020941871050469252323786517765915842863960407888286824612692792558486984111; - uint256 constant IC6y = 10485425859662940648059438593932469653430937797032986298010291971136560546606; + uint256 constant IC6x = 20285922446326021920139710995121407214169482232305219000806142565162008876582; + uint256 constant IC6y = 20262965908378746115256859129016522779240064762833950752540054725382617159292; - uint256 constant IC7x = 5793647679348034224394212228339808224168272820193578238325721973141818095084; - uint256 constant IC7y = 15996240662253233062748933483250431489019330778771737542366438462520021557482; + uint256 constant IC7x = 15496611916537562304932152116645548054363502099017081525447814337155831545275; + uint256 constant IC7y = 12166648198760048649371787023627539338039368388118275361712242294934766619292; - uint256 constant IC8x = 14623001753566766629059858986684249079998519866195503676489725502470812161745; - uint256 constant IC8y = 14014107953826274980522140152870458692572824248357139653679255112039697301258; + uint256 constant IC8x = 13444653425890195829822091323580528753005196858406397472184289107789510741265; + uint256 constant IC8y = 18874638472148701412583988212130000168671618958524761972854762540997604363490; - uint256 constant IC9x = 9097153778982380593651318254923294438188449308208860385736335671731642689388; - uint256 constant IC9y = 10676411777771816538790669785924041640901023875981025632676700582420634457605; + uint256 constant IC9x = 13401814969191376616453325737543030521878544275919176043667947530822920899076; + uint256 constant IC9y = 5996511683178123017476722278593415961089450511300062639275533618996372362629; - uint256 constant IC10x = 4768550018067835409836437067366308823423110418503527411288340247166729595570; - uint256 constant IC10y = 5845234219082990661718204286288547936215316047709043735403115260016597691195; + uint256 constant IC10x = 10752518356044155840355705635317291970342921491243796151858244971272738087920; + uint256 constant IC10y = 7893898166248025218200260038303990472445207256396885606211347521786988410708; - uint256 constant IC11x = 6579017396588187900994327393243124471248914684882036754588313858620073841120; - uint256 constant IC11y = 11590081804677161555857156577973669346405362193296617772438442829550839242618; + uint256 constant IC11x = 1671573246653707642684652297332055432609542036465217336346913994262999882216; + uint256 constant IC11y = 16199396259959849721356492454108647506697294285059215740332205752345276335896; - uint256 constant IC12x = 8095739804925688685307904593266974552819819919511836734708520778110789318572; - uint256 constant IC12y = 11116071221641714615893908909552671269587233310745275115713330904448178443052; + uint256 constant IC12x = 13384261966332934396755928812266650953920830494252577750878214345133556749175; + uint256 constant IC12y = 1723930491520129150653565480223888554533865958105282408409596026774710286019; // Memory data diff --git a/solidity/contracts/lib/verifier_check_nullifier_value.sol b/solidity/contracts/lib/verifier_check_nullifier_value.sol index 6f52468..77a25f5 100644 --- a/solidity/contracts/lib/verifier_check_nullifier_value.sol +++ b/solidity/contracts/lib/verifier_check_nullifier_value.sol @@ -43,29 +43,29 @@ contract Groth16Verifier_CheckNullifierValue { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 17689341276400528038881094913477316584601794141371778409863013039635850173207; - uint256 constant IC0y = 2558369427026425384949906416503547088831210779110621106606440952169504206690; + uint256 constant IC0x = 1338671788990295704736033141300430023835032598181651716758729252260332820978; + uint256 constant IC0y = 14897126764989027952732135133494577793907958813704551233381801141924273828931; - uint256 constant IC1x = 20388809982110581159758837462045964857853052490510219178487821131497955197485; - uint256 constant IC1y = 11559017693629947025935312317037014128873998602028720842466005215803981949488; + uint256 constant IC1x = 11258985684379021512619677151995443722802751486269486723191848897932444933735; + uint256 constant IC1y = 5049847979746982553579767540347585652083815677727311298261743077490941840231; - uint256 constant IC2x = 13435481798396867294149705853505335939788917619623055020026965426090811440436; - uint256 constant IC2y = 19014602589838621389539780295053756982599159926216043076756080339477593928267; + uint256 constant IC2x = 18780979488418119255990604294159162320836530837293171575493517805725479691077; + uint256 constant IC2y = 5550409129316978207563864163037526135830965204450814974559008484241367338671; - uint256 constant IC3x = 9101308846546712061385480237991349242785040605257963609786960558441532043575; - uint256 constant IC3y = 20162065319211808084372980649366363483528315362920428034950134764348551061576; + uint256 constant IC3x = 7025551321301721198879385622991957508892439693459184775544494530256594553724; + uint256 constant IC3y = 6810035831347935239587917469570030680581130928921384098191695868776076904350; - uint256 constant IC4x = 18501642606042950780794159845742882415192620379623303973226676116663683279831; - uint256 constant IC4y = 4035817123127101809036107026908494398248571792522913686551956478049624862954; + uint256 constant IC4x = 2951494077044929914951717349255356763305534510593692759564921247685180276848; + uint256 constant IC4y = 13724298906459836497150650171276308031338780677407732609850453143772352426522; - uint256 constant IC5x = 9901268858925160759276937645092909569288103654642798134621446572955859297610; - uint256 constant IC5y = 17808153853093791337220101848650791727823424169638249340100930096702897113053; + uint256 constant IC5x = 21097435458091247782698645996977258225236345323552833869456634964566278950454; + uint256 constant IC5y = 21393487522315294806202026207128353101371773159427081388534843544804868526711; - uint256 constant IC6x = 9156914356337812564179538349866550161346357705322438631065343069946111924902; - uint256 constant IC6y = 16282373888516307308471083478224742458495059270728361213537123807614765466293; + uint256 constant IC6x = 4875142297913496021006761132078220317129002672243785186798762560338859630269; + uint256 constant IC6y = 3211845351264960488717853590996031313393801133350527587932640576520006553885; - uint256 constant IC7x = 2534369505154061360258866279946256857360053453543228810913826185688221321445; - uint256 constant IC7y = 15777401174389130350272102012636311458122823507269563590772434670217407958669; + uint256 constant IC7x = 4955635030731318845745524546107802274094293682039462966131075178018803526150; + uint256 constant IC7y = 6203178817352019194854978402800769106061647253726240015031075878580782033642; // Memory data diff --git a/solidity/contracts/lib/verifier_check_nullifier_value_batch.sol b/solidity/contracts/lib/verifier_check_nullifier_value_batch.sol index 6bbf725..22fd0bc 100644 --- a/solidity/contracts/lib/verifier_check_nullifier_value_batch.sol +++ b/solidity/contracts/lib/verifier_check_nullifier_value_batch.sol @@ -43,77 +43,77 @@ contract Groth16Verifier_CheckNullifierValueBatch { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 20671074467579734857847596547055266445328533762588721268519191875350059053891; - uint256 constant IC0y = 14951098345322796073027366584310761044868926985657977459139078894481627655461; + uint256 constant IC0x = 11332262655457564488215352194263941940249209328623124797393919256476590972862; + uint256 constant IC0y = 4900880651391780606336256601053557828390770262532918224586781153427378547477; - uint256 constant IC1x = 12000081248186983269524257052000761064901034818507685659049644161122941063341; - uint256 constant IC1y = 15516971062665917073090328459138065004596246882492513196262563532230767389353; + uint256 constant IC1x = 19764974095674511560923287907127523150479355145780561208635140699348386214188; + uint256 constant IC1y = 17536120915643984432351384491688090328877096865896996929244000025273419951311; - uint256 constant IC2x = 9411111032740111602264855148385468328492259422723597259385251613745598803902; - uint256 constant IC2y = 10323155201450014604301403915496923225659511949572802661966430087007178746441; + uint256 constant IC2x = 5862785380913709201569576321806315831598079242322585366849667558813158467226; + uint256 constant IC2y = 7176431903440258728881149127393026388839961578517526943322352403456753929543; - uint256 constant IC3x = 4438847732901674872128718308489179804393784494012127205086961117665904894192; - uint256 constant IC3y = 7430531453405117598938421321593673956070329677208870594925362824944496151111; + uint256 constant IC3x = 19601866242669930681089112810893189743503554557635123534736632851812019922261; + uint256 constant IC3y = 7229696478669038914748129287736922632548567140154168848696488073653729403012; - uint256 constant IC4x = 2395120040465205201096667885252276606645316331032988003167679478054139898877; - uint256 constant IC4y = 14448366311941437868185353072645393328711231401925491134934298524562784274462; + uint256 constant IC4x = 3842701843123219048245871259893258387551961896998680218209452967593722505872; + uint256 constant IC4y = 4414244370236867878046819529820595682756950706732256495477999839610084801559; - uint256 constant IC5x = 13445677581031398831817167387998077245896166063464307566626433317121928548858; - uint256 constant IC5y = 13902400719240728728437612577162464173527233703886931321955943252958646992511; + uint256 constant IC5x = 13523532989905337665650556996036671939166207661519913956317319172290919062932; + uint256 constant IC5y = 8659049534196593657934690960753666055885294120691833498653473149479002235431; - uint256 constant IC6x = 15641654430273462801884123825735380328788465741346176351356205589585591382537; - uint256 constant IC6y = 8139850515789596472180180792818545785157943800149252751717392103568781234161; + uint256 constant IC6x = 16503061515348536031537040435367952074924216947098922976845892505795680013452; + uint256 constant IC6y = 2590319973485803466579974747106248679041609895826484812451054625217654664369; - uint256 constant IC7x = 14050096082523710141776397917128550695911592862807463733468997209701682217863; - uint256 constant IC7y = 6901766456320629799934175965140510580558270796917425129954992400613270177847; + uint256 constant IC7x = 16852410738143175293023201453119415431000330740981676385742144927722964051371; + uint256 constant IC7y = 14730741280952430805590227736786560963580680416288028446215801992573033455393; - uint256 constant IC8x = 12731436494425511204592700949928542091214640520850023719195462862199345771601; - uint256 constant IC8y = 19120295984411495037887570571101234304735996780135524189512745912549942321948; + uint256 constant IC8x = 12353857760322355073030427842075936034632144455505024951816883772481509614273; + uint256 constant IC8y = 20004153023103783331721566880174771045943192552869180004933196394155384682592; - uint256 constant IC9x = 18277966489668893230779554667054735652643817777661497642941039904825866475778; - uint256 constant IC9y = 14776318209502074904311976810878471980321185136711509936306201830834650750985; + uint256 constant IC9x = 3985090338452943970228685360585906445709572097185972606565595280311104162572; + uint256 constant IC9y = 5072296814457654407170084856773114115102376152728165404330736617578797740898; - uint256 constant IC10x = 11393441297861142395248716090957736857800669691486901170239864009237766837733; - uint256 constant IC10y = 4669633111807398549423023745625200983024113696597242886776080701570600095817; + uint256 constant IC10x = 8065880497464495069538816641425002299299026349070045025086297139538875841660; + uint256 constant IC10y = 7634941391505082093874126190775565930485198981023614290637106077899427283258; - uint256 constant IC11x = 17094019090056954918811926108534746962919149124197235929911157344230501642917; - uint256 constant IC11y = 14674368842335287917470374822844105391742093461604374599471429840141572040168; + uint256 constant IC11x = 14059912125912787846249805542843067789210373484394469361050627212862695490029; + uint256 constant IC11y = 9110781980596716013090127749809844845409555206274486001944490667425094371968; - uint256 constant IC12x = 19692688396724133495482002416399398592514532066384925082407645678984419317473; - uint256 constant IC12y = 3605203667012682912469870143041663147227348414852241639025768542294557979471; + uint256 constant IC12x = 18308387470671049265758121371006545548210054578011400378181046122608315829341; + uint256 constant IC12y = 6584036067541894901494775112464948138972213950441793282647805506759201152310; - uint256 constant IC13x = 20628982961670697756256724718272051941421624806419790192237263009313531587753; - uint256 constant IC13y = 5403716199591168683890485313474651075202577022988073697830104927568491753927; + uint256 constant IC13x = 9861441120301186407183308294644130001308440175708575647183726134031891733895; + uint256 constant IC13y = 9978607070670422786597808110531010608629963315607365532167006095509714923354; - uint256 constant IC14x = 21679974290313205033014132589719764884061756549385623306128090282856163701618; - uint256 constant IC14y = 15451053794872865538119516358230526850276194265855889349229313173675490614973; + uint256 constant IC14x = 20748342223653845270413345876318798317457146605437938206711709989519299596015; + uint256 constant IC14y = 9131245610772098279282035940823090378873522784486866662649195784040799666562; - uint256 constant IC15x = 16603737745500308717002054968060166864459062746665998233180858889452052686118; - uint256 constant IC15y = 750549697690004286406850800760928901821286836108997012362232119165590942167; + uint256 constant IC15x = 14031089639670846946837875549470994747244435063273148894003543740960624330741; + uint256 constant IC15y = 4306219088861679414126214077542902025145618292982544695729676778145721285636; - uint256 constant IC16x = 1359311639973519852598165556788860563250638498571805076085313151321480630172; - uint256 constant IC16y = 4831751294456710953219978069057466405077773094664792257088750356636328425109; + uint256 constant IC16x = 2769852039634326825876357013965975482038063214744632352558176145395177582986; + uint256 constant IC16y = 17293718424260149429332707823461490446131047056346552367454939830999995689810; - uint256 constant IC17x = 10246678981614529245614748704049790844676680216805003850578533976065639967924; - uint256 constant IC17y = 18673996210719422229181910852659583345325739558179830325503226296557565439035; + uint256 constant IC17x = 18928430312906036443881890498807964700665356899959064573418618875675282944461; + uint256 constant IC17y = 21068626857657091741528559750741149708936240504177106087865279231403661389929; - uint256 constant IC18x = 19915227005624332214251170233702382833969373708814987943248729626521801446050; - uint256 constant IC18y = 5283839256348009268722315411106479297473851835680129259755232084561721766803; + uint256 constant IC18x = 12757617453367508347053333332646859574198171490460390112327169995775597991534; + uint256 constant IC18y = 17377240265716167554220072709133750271741708447351041298794588819709338674159; - uint256 constant IC19x = 13883604722689792226764138263277808397013882375589363868621104879476228674022; - uint256 constant IC19y = 7236730039787803352120531558201495639173100029441266845857912822879182728155; + uint256 constant IC19x = 1888001506248988313143395598400467721812882721120368269401349801819330717172; + uint256 constant IC19y = 1395886082412535800597604228407431388907461598711527207281347491300615884495; - uint256 constant IC20x = 12481531748190575843330873248871107942932072373848033146722006789119150232291; - uint256 constant IC20y = 9631254126711952993469771781559629372506383041947195835052653817320975402032; + uint256 constant IC20x = 18043400030696868162476381940210335886935248784307972055789448396741996126667; + uint256 constant IC20y = 17686628380575800965498850373365234336161593937196869259542653293051408185988; - uint256 constant IC21x = 17481080981288359886217003385152346766741540645180108972693789761048559279376; - uint256 constant IC21y = 7825039381905782374744115652203827737598831456021283009023141915867193175692; + uint256 constant IC21x = 9265988206741312573612001783264787547913985645850125326230310896343722354314; + uint256 constant IC21y = 6830049788135298888417065481411071101207083933360285369351972409750760387174; - uint256 constant IC22x = 7849237446611626817070212201485848479849355440996513672685177687294263805454; - uint256 constant IC22y = 16515874431405097920776203066333566915839614045778881194348792214569056984691; + uint256 constant IC22x = 14216941408774843437720093305572230365011189853993453546069176827983160967597; + uint256 constant IC22y = 11223923790481299954099192811839949196639893528082798946591557600404880623659; - uint256 constant IC23x = 11857707391098615847106972237544828768710884349097096286759498433883002113991; - uint256 constant IC23y = 15958999989731507948927930508670148671289317287181283284670403760528825439958; + uint256 constant IC23x = 7828825250567961932377425131615925660642586675407421691734481138952914491575; + uint256 constant IC23y = 20680934470258301810835562635111614279835182202130353226085715129345125470259; // Memory data diff --git a/solidity/contracts/lib/verifier_nf_anon.sol b/solidity/contracts/lib/verifier_nf_anon.sol index 5b562d0..560ba6b 100644 --- a/solidity/contracts/lib/verifier_nf_anon.sol +++ b/solidity/contracts/lib/verifier_nf_anon.sol @@ -43,14 +43,14 @@ contract Groth16Verifier_NfAnon { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 8922977649653716478533643502236675742973885730192415107071751438524988923118; - uint256 constant IC0y = 1990756410416077550913967933243900096170395655978549794450840913670612759893; + uint256 constant IC0x = 8896168657352135346852931425049121451414686792670862159598228223648574474816; + uint256 constant IC0y = 3445928520436873607114908053043484341123806826285361524855609990382159038574; - uint256 constant IC1x = 12829299408638277251614069033297872492346648213368539774918251397975187146800; - uint256 constant IC1y = 16243133060251374431666091723932086840059135019646396816525543465962972014306; + uint256 constant IC1x = 12747197512388676307230569341536923544501156514825459437594543270379647062147; + uint256 constant IC1y = 2023856853360183002608744687217746373426131324247248344310793476484287164484; - uint256 constant IC2x = 21289110588137550978879885193116788208386865672602130331817656139269812603750; - uint256 constant IC2y = 16853558974646793562218909558615825026098296826599271455064687348706212961578; + uint256 constant IC2x = 3572124471608987693279116866707919871663694495665223916115104182425153806409; + uint256 constant IC2y = 9980054201685895017487360544240987248099229202860587538985832327800899422700; // Memory data diff --git a/solidity/contracts/lib/verifier_nf_anon_nullifier.sol b/solidity/contracts/lib/verifier_nf_anon_nullifier.sol index ecb777e..2c32716 100644 --- a/solidity/contracts/lib/verifier_nf_anon_nullifier.sol +++ b/solidity/contracts/lib/verifier_nf_anon_nullifier.sol @@ -43,17 +43,17 @@ contract Groth16Verifier_NfAnonNullifier { uint256 constant deltay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; - uint256 constant IC0x = 17063916472897219906499013602609563773459699022961611964268189063314041965585; - uint256 constant IC0y = 7113914571678201962802800890880199872761004856366564528043813710380448639160; + uint256 constant IC0x = 15122927331390279405439258032146487449250027476359233906619180855465373348241; + uint256 constant IC0y = 2718045126142014053720257881317305098803018579970809356897631096685372501122; - uint256 constant IC1x = 15394462220807272608052136227081282223595149712428374547831710534920733043919; - uint256 constant IC1y = 19327226410606568245065707523771012300596341916719815049742062724996282552116; + uint256 constant IC1x = 21391668661070512138766193982570587219164226159434666289060569284394104318882; + uint256 constant IC1y = 4859928570993601787638377720735137313229620109250558631239081427049061748842; - uint256 constant IC2x = 2979059918714837991520229486044942728645953928301289793610170432062103873029; - uint256 constant IC2y = 6487742855150925877601255115745638440865210203580556432863401660227192993190; + uint256 constant IC2x = 9238651205784637601498903748638349573597168502898133511394061527645140611343; + uint256 constant IC2y = 12605756568692259808122905477005610230025606897097532574582413706986915521373; - uint256 constant IC3x = 21134802089204916535108610615539521390582570772406201504265803749640245800209; - uint256 constant IC3y = 5760026545779218525110347831373198179812011736302341060824625698975753169974; + uint256 constant IC3x = 3892009176399630635248593186224953219648660590709191428333062867114110841830; + uint256 constant IC3y = 11124012146549484484524598757331252908477719206238132957074438811644969422613; // Memory data diff --git a/zkp/circuits/gen-config.json b/zkp/circuits/gen-config.json index 8140668..e2de29f 100644 --- a/zkp/circuits/gen-config.json +++ b/zkp/circuits/gen-config.json @@ -1,7 +1,7 @@ { "anon": { "ptau": "powersOfTau28_hez_final_12", - "batchPtau": "powersOfTau28_hez_final_13", + "batchPtau": "powersOfTau28_hez_final_14", "skipSolidityGenaration": false }, "anon_enc": { @@ -43,11 +43,11 @@ "skipSolidityGenaration": false }, "check_hashes_value": { - "ptau": "powersOfTau28_hez_final_09", + "ptau": "powersOfTau28_hez_final_10", "skipSolidityGenaration": false }, "check_inputs_outputs_value": { - "ptau": "powersOfTau28_hez_final_11", + "ptau": "powersOfTau28_hez_final_12", "batchPtau": "powersOfTau28_hez_final_13", "skipSolidityGenaration": false }, diff --git a/zkp/circuits/gen.js b/zkp/circuits/gen.js index e96887a..cd65bc2 100644 --- a/zkp/circuits/gen.js +++ b/zkp/circuits/gen.js @@ -1,42 +1,42 @@ -const fs = require('fs'); -const path = require('path'); -const { exec } = require('child_process'); -const { promisify } = require('util'); -const axios = require('axios'); -const yargs = require('yargs/yargs'); -const { hideBin } = require('yargs/helpers'); +const fs = require("fs"); +const path = require("path"); +const { exec } = require("child_process"); +const { promisify } = require("util"); +const axios = require("axios"); +const yargs = require("yargs/yargs"); +const { hideBin } = require("yargs/helpers"); const argv = yargs(hideBin(process.argv)) - .option('c', { - alias: 'circuit', - describe: 'Specify a single circuit to build', - type: 'string', + .option("c", { + alias: "circuit", + describe: "Specify a single circuit to build", + type: "string", }) - .option('v', { - alias: 'verbose', - describe: 'Enable verbose mode', - type: 'boolean', + .option("v", { + alias: "verbose", + describe: "Enable verbose mode", + type: "boolean", default: false, }) - .option('cp', { - alias: 'compileOnly', - describe: 'Compile only', - type: 'boolean', + .option("cp", { + alias: "compileOnly", + describe: "Compile only", + type: "boolean", default: false, }) - .option('cr', { - alias: 'circuitsRoot', - describe: 'Specify the root folder for storing circuits compilation files', - type: 'string', + .option("cr", { + alias: "circuitsRoot", + describe: "Specify the root folder for storing circuits compilation files", + type: "string", }) - .option('pk', { - alias: 'provingKeysRoot', - describe: 'Specify the root folder for storing generated proving keys', - type: 'string', + .option("pk", { + alias: "provingKeysRoot", + describe: "Specify the root folder for storing generated proving keys", + type: "string", }) - .option('pt', { - alias: 'ptauDownloadPath', - describe: 'Specify the root folder for storing downloaded PTAU', - type: 'string', + .option("pt", { + alias: "ptauDownloadPath", + describe: "Specify the root folder for storing downloaded PTAU", + type: "string", }).argv; const circuitsRoot = process.env.CIRCUITS_ROOT || argv.circuitsRoot; @@ -49,22 +49,22 @@ const parallelLimit = parseInt(process.env.GEN_CONCURRENCY, 10) || 30; // Defaul // check env vars if (!circuitsRoot) { - console.error('Error: CIRCUITS_ROOT is not set.'); + console.error("Error: CIRCUITS_ROOT is not set."); process.exit(1); } if (!compileOnly && !provingKeysRoot) { - console.error('Error: PROVING_KEYS_ROOT is not set.'); + console.error("Error: PROVING_KEYS_ROOT is not set."); process.exit(1); } if (!compileOnly && !ptauDownload) { - console.error('Error: PTAU_DOWNLOAD_PATH is not set.'); + console.error("Error: PTAU_DOWNLOAD_PATH is not set."); process.exit(1); } console.log( - 'Generating circuits with the following settings:\n' + + "Generating circuits with the following settings:\n" + JSON.stringify( { specificCircuits, @@ -76,20 +76,20 @@ console.log( ptauDownload, }, null, - 2 + 2, ) + - '\n' + "\n", ); // load circuits -const circuits = require('./gen-config.json'); +const circuits = require("./gen-config.json"); const toCamelCase = (str) => { return str - .split('_') + .split("_") .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) - .join(''); + .join(""); }; // util functions @@ -100,12 +100,12 @@ const timestamp = () => new Date().toISOString(); const logPrefix = (circuit) => `[${timestamp()}] [${circuit}]`; const log = (circuit, message) => { - console.log(logPrefix(circuit) + ' ' + message); + console.log(logPrefix(circuit) + " " + message); }; // main circuit process logic const processCircuit = async (circuit, ptau, skipSolidityGenaration) => { - const circomInput = path.join('./', `${circuit}.circom`); + const circomInput = path.join("./", `${circuit}.circom`); const ptauFile = path.join(ptauDownload, `${ptau}.ptau`); const zkeyOutput = path.join(provingKeysRoot, `${circuit}.zkey`); @@ -120,13 +120,13 @@ const processCircuit = async (circuit, ptau, skipSolidityGenaration) => { const response = await axios.get( `https://storage.googleapis.com/zkevm/ptau/${ptau}.ptau`, { - responseType: 'stream', - } + responseType: "stream", + }, ); response.data.pipe(fs.createWriteStream(ptauFile)); await new Promise((resolve, reject) => { - response.data.on('end', resolve); - response.data.on('error', reject); + response.data.on("end", resolve); + response.data.on("error", reject); }); } catch (error) { log(circuit, `Failed to download PTAU file: ${error}`); @@ -136,14 +136,14 @@ const processCircuit = async (circuit, ptau, skipSolidityGenaration) => { log(circuit, `Compiling circuit`); const { stdout: cmOut, stderr: cmErr } = await execAsync( - `circom ${circomInput} --output ${circuitsRoot} --sym --wasm` + `circom ${circomInput} --output ${circuitsRoot} --sym --wasm`, ); if (verbose) { if (cmOut) { - log(circuit, 'compile output:\n' + cmOut); + log(circuit, "compile output:\n" + cmOut); } if (cmErr) { - log(circuit, 'compile error:\n' + cmErr); + log(circuit, "compile error:\n" + cmErr); } } if (compileOnly) { @@ -151,14 +151,18 @@ const processCircuit = async (circuit, ptau, skipSolidityGenaration) => { } const { stdout: ctOut, stderr: ctErr } = await execAsync( - `circom ${circomInput} --output ${provingKeysRoot} --r1cs` + `circom ${circomInput} --output ${provingKeysRoot} --r1cs`, ); if (verbose) { if (ctOut) { - log(circuit, 'constraint output:\n' + ctOut); + log(circuit, "constraint generation output:\n" + ctOut); + const { stdout: csOut } = await execAsync( + `npx snarkjs r1cs print ${provingKeysRoot}/${circuit}.r1cs ${circuitsRoot}/${circuit}.sym `, + ); + log(circuit, "constraints:\n" + csOut); } if (ctErr) { - log(circuit, 'constraint error:\n' + ctErr); + log(circuit, "constraint error:\n" + ctErr); } } @@ -166,30 +170,30 @@ const processCircuit = async (circuit, ptau, skipSolidityGenaration) => { const { stdout: pkOut, stderr: pkErr } = await execAsync( `npx snarkjs groth16 setup ${path.join( provingKeysRoot, - `${circuit}.r1cs` - )} ${ptauFile} ${zkeyOutput}` + `${circuit}.r1cs`, + )} ${ptauFile} ${zkeyOutput}`, ); if (verbose) { if (pkOut) { - log(circuit, 'test proving key generation output:\n' + pkOut); + log(circuit, "test proving key generation output:\n" + pkOut); } if (pkErr) { - log(circuit, 'test proving key generation error:\n' + pkErr); + log(circuit, "test proving key generation error:\n" + pkErr); } } log(circuit, `Exporting verification key`); const { stdout: vkOut, stderr: vkErr } = await execAsync( `npx snarkjs zkey export verificationkey ${zkeyOutput} ${path.join( provingKeysRoot, - `${circuit}-vkey.json` - )}` + `${circuit}-vkey.json`, + )}`, ); if (verbose) { if (vkOut) { - log(circuit, 'verification key export output:\n' + vkOut); + log(circuit, "verification key export output:\n" + vkOut); } if (vkErr) { - log(circuit, 'verification key export error:\n' + vkErr); + log(circuit, "verification key export error:\n" + vkErr); } } if (skipSolidityGenaration) { @@ -199,32 +203,32 @@ const processCircuit = async (circuit, ptau, skipSolidityGenaration) => { log(circuit, `Generating solidity verifier`); const solidityFile = path.join( - '..', - '..', - 'solidity', - 'contracts', - 'lib', - `verifier_${circuit}.sol` + "..", + "..", + "solidity", + "contracts", + "lib", + `verifier_${circuit}.sol`, ); const { stdout: svOut, stderr: svErr } = await execAsync( - `npx snarkjs zkey export solidityverifier ${zkeyOutput} ${solidityFile}` + `npx snarkjs zkey export solidityverifier ${zkeyOutput} ${solidityFile}`, ); if (verbose) { if (svOut) { - log(circuit, 'solidity verifier export output:\n' + svOut); + log(circuit, "solidity verifier export output:\n" + svOut); } if (svErr) { - log(circuit, 'solidity verifier export error:\n' + svErr); + log(circuit, "solidity verifier export error:\n" + svErr); } } log(circuit, `Modifying the contract name in the Solidity file`); const camelCaseCircuitName = toCamelCase(circuit); const solidityFileTmp = `${solidityFile}.tmp`; - const fileContent = fs.readFileSync(solidityFile, 'utf8'); + const fileContent = fs.readFileSync(solidityFile, "utf8"); const updatedContent = fileContent.replace( - ' Groth16Verifier ', - ` Groth16Verifier_${camelCaseCircuitName} ` + " Groth16Verifier ", + ` Groth16Verifier_${camelCaseCircuitName} `, ); fs.writeFileSync(solidityFileTmp, updatedContent); fs.renameSync(solidityFileTmp, solidityFile); @@ -266,9 +270,9 @@ const run = async () => { if (batchPtau) { const pcBatchPromise = processCircuit( - circuit + '_batch', + circuit + "_batch", batchPtau, - skipSolidityGenaration + skipSolidityGenaration, ); activePromises.add(pcBatchPromise); diff --git a/zkp/circuits/lib/check-hashes-tokenid-uri.circom b/zkp/circuits/lib/check-hashes-tokenid-uri.circom index 1935a12..a097be1 100644 --- a/zkp/circuits/lib/check-hashes-tokenid-uri.circom +++ b/zkp/circuits/lib/check-hashes-tokenid-uri.circom @@ -35,7 +35,8 @@ template CheckHashesForTokenIdAndUri(numInputs) { // hash the input values component inputHashes[numInputs]; - var calculatedInputHashes[numInputs]; + component checkEquals[numInputs]; + component checkZero[numInputs]; for (var i = 0; i < numInputs; i++) { // perform the hash calculation even though they are not needed when the input // commitment at the current index is 0; this is because in zkp circuits we @@ -46,15 +47,14 @@ template CheckHashesForTokenIdAndUri(numInputs) { inputHashes[i].inputs[2] <== salts[i]; inputHashes[i].inputs[3] <== ownerPublicKeys[i][0]; inputHashes[i].inputs[4] <== ownerPublicKeys[i][1]; - if (commitments[i] == 0) { - calculatedInputHashes[i] = 0; - } else { - calculatedInputHashes[i] = inputHashes[i].out; - } - } - // check that the input commitments match the calculated hashes - for (var i = 0; i < numInputs; i++) { - assert(commitments[i] == calculatedInputHashes[i]); + // check that the input commitments match the calculated hashes + checkZero[i] = IsZero(); + checkZero[i].in <== commitments[i]; + checkEquals[i] = IsEqual(); + checkEquals[i].in[0] <== commitments[i]; + // ensure when commitment is 0, compare with 0 + checkEquals[i].in[1] <== (1 - checkZero[i].out) * inputHashes[i].out; + checkEquals[i].out === 1; } } diff --git a/zkp/circuits/lib/check-hashes.circom b/zkp/circuits/lib/check-hashes.circom index cbf783b..59388a6 100644 --- a/zkp/circuits/lib/check-hashes.circom +++ b/zkp/circuits/lib/check-hashes.circom @@ -38,7 +38,8 @@ template CheckHashes(numInputs) { // hash the input values component inputHashes[numInputs]; - var calculatedInputHashes[numInputs]; + component checkEquals[numInputs]; + component checkZero[numInputs]; for (var i = 0; i < numInputs; i++) { // perform the hash calculation even though they are not needed when the input // commitment at the current index is 0; this is because in zkp circuits we @@ -48,15 +49,14 @@ template CheckHashes(numInputs) { inputHashes[i].inputs[1] <== salts[i]; inputHashes[i].inputs[2] <== ownerPublicKeys[i][0]; inputHashes[i].inputs[3] <== ownerPublicKeys[i][1]; - if (commitments[i] == 0) { - calculatedInputHashes[i] = 0; - } else { - calculatedInputHashes[i] = inputHashes[i].out; - } - } - // check that the input commitments match the calculated hashes - for (var i = 0; i < numInputs; i++) { - assert(commitments[i] == calculatedInputHashes[i]); + // check that the input commitments match the calculated hashes + checkZero[i] = IsZero(); + checkZero[i].in <== commitments[i]; + checkEquals[i] = IsEqual(); + checkEquals[i].in[0] <== commitments[i]; + // ensure when commitment is 0, compare with 0 + checkEquals[i].in[1] <== (1 - checkZero[i].out) * inputHashes[i].out; + checkEquals[i].out === 1; } } diff --git a/zkp/circuits/lib/check-inputs-outputs-value-base.circom b/zkp/circuits/lib/check-inputs-outputs-value-base.circom index f10d70a..947dc04 100644 --- a/zkp/circuits/lib/check-inputs-outputs-value-base.circom +++ b/zkp/circuits/lib/check-inputs-outputs-value-base.circom @@ -18,6 +18,7 @@ pragma circom 2.1.4; include "./check-positive.circom"; include "./check-hashes.circom"; include "../node_modules/circomlib/circuits/babyjub.circom"; +include "../node_modules/circomlib/circuits/comparators.circom"; template Zeto(numInputs, numOutputs) { signal input inputCommitments[numInputs]; @@ -73,7 +74,10 @@ template Zeto(numInputs, numOutputs) { } // check that the sum of input values is greater than the sum of output values - assert(sumInputs >= sumOutputs); + component checkSum = GreaterEqThan(40); + checkSum.in[0] <== sumInputs; + checkSum.in[1] <== sumOutputs; + checkSum.out === 1; // return the remainder as output out <== sumInputs - sumOutputs; diff --git a/zkp/circuits/lib/check-nullifier-tokenid-uri.circom b/zkp/circuits/lib/check-nullifier-tokenid-uri.circom index 0c820ce..f37985b 100644 --- a/zkp/circuits/lib/check-nullifier-tokenid-uri.circom +++ b/zkp/circuits/lib/check-nullifier-tokenid-uri.circom @@ -39,22 +39,22 @@ template CheckNullifierForTokenIdAndUri(numInputs) { // calculate the nullifier values from the input values component nullifierHashes[numInputs]; - var calculatedNullifierHashes[numInputs]; + component checkEquals[numInputs]; + component checkZero[numInputs]; for (var i = 0; i < numInputs; i++) { nullifierHashes[i] = Poseidon(4); nullifierHashes[i].inputs[0] <== tokenIds[i]; nullifierHashes[i].inputs[1] <== tokenUris[i]; nullifierHashes[i].inputs[2] <== salts[i]; nullifierHashes[i].inputs[3] <== ownerPrivateKey; - if (nullifiers[i] == 0) { - calculatedNullifierHashes[i] = 0; - } else { - calculatedNullifierHashes[i] = nullifierHashes[i].out; - } - } - // check that the nullifiers match the calculated hashes - for (var i = 0; i < numInputs; i++) { - assert(nullifiers[i] == calculatedNullifierHashes[i]); + // check that the nullifiers match the calculated hashes + checkZero[i] = IsZero(); + checkZero[i].in <== nullifiers[i]; + checkEquals[i] = IsEqual(); + checkEquals[i].in[0] <== nullifiers[i]; + // ensure when nullifier is 0, compare with 0 + checkEquals[i].in[1] <== (1 - checkZero[i].out) * nullifierHashes[i].out; + checkEquals[i].out === 1; } } diff --git a/zkp/circuits/lib/check-nullifier-value-base.circom b/zkp/circuits/lib/check-nullifier-value-base.circom index 487b057..a9f38b7 100644 --- a/zkp/circuits/lib/check-nullifier-value-base.circom +++ b/zkp/circuits/lib/check-nullifier-value-base.circom @@ -94,7 +94,10 @@ template Zeto(numInputs, numOutputs, nSMTLevels) { } // check that the sum of input values is greater than the sum of output values - assert(sumInputs >= sumOutputs); + component checkSum = GreaterEqThan(40); + checkSum.in[0] <== sumInputs; + checkSum.in[1] <== sumOutputs; + checkSum.out === 1; out <== sumInputs - sumOutputs; } diff --git a/zkp/circuits/lib/check-nullifiers.circom b/zkp/circuits/lib/check-nullifiers.circom index ce79429..0b48f23 100644 --- a/zkp/circuits/lib/check-nullifiers.circom +++ b/zkp/circuits/lib/check-nullifiers.circom @@ -46,21 +46,21 @@ template CheckNullifiers(numInputs) { // calculate the nullifier values from the input values component nullifierHashes[numInputs]; - var calculatedNullifierHashes[numInputs]; + component checkEquals[numInputs]; + component checkZero[numInputs]; for (var i = 0; i < numInputs; i++) { nullifierHashes[i] = Poseidon(3); nullifierHashes[i].inputs[0] <== values[i]; nullifierHashes[i].inputs[1] <== salts[i]; nullifierHashes[i].inputs[2] <== ownerPrivateKey; - if (nullifiers[i] == 0) { - calculatedNullifierHashes[i] = 0; - } else { - calculatedNullifierHashes[i] = nullifierHashes[i].out; - } - } - // check that the nullifiers match the calculated hashes - for (var i = 0; i < numInputs; i++) { - assert(nullifiers[i] == calculatedNullifierHashes[i]); + // check that the nullifiers match the calculated hashes + checkZero[i] = IsZero(); + checkZero[i].in <== nullifiers[i]; + checkEquals[i] = IsEqual(); + checkEquals[i].in[0] <== nullifiers[i]; + // ensure when nullifier is 0, compare with 0 + checkEquals[i].in[1] <== (1 - checkZero[i].out) * nullifierHashes[i].out; + checkEquals[i].out === 1; } } diff --git a/zkp/circuits/lib/check-positive.circom b/zkp/circuits/lib/check-positive.circom index 546bee6..0f293af 100644 --- a/zkp/circuits/lib/check-positive.circom +++ b/zkp/circuits/lib/check-positive.circom @@ -30,12 +30,10 @@ template CheckPositive(numOutputs) { // check that the output values are within the expected range. we don't allow negative values component positive[numOutputs]; - var isPositive[numOutputs]; for (var i = 0; i < numOutputs; i++) { positive[i] = GreaterEqThan(40); positive[i].in[0] <== outputValues[i]; positive[i].in[1] <== 0; - isPositive[i] = positive[i].out; - assert(isPositive[i] == 1); + positive[i].out === 1; } } \ No newline at end of file diff --git a/zkp/circuits/lib/check-sum.circom b/zkp/circuits/lib/check-sum.circom index 185bb40..1b4cf1e 100644 --- a/zkp/circuits/lib/check-sum.circom +++ b/zkp/circuits/lib/check-sum.circom @@ -41,5 +41,9 @@ template CheckSum(numInputs, numOutputs) { for (var i = 0; i < numOutputs; i++) { sumOutputs = sumOutputs + outputValues[i]; } - assert(sumInputs == sumOutputs); -} + + component checkEqual = IsEqual(); + checkEqual.in[0] <== sumInputs; + checkEqual.in[1] <== sumOutputs; + checkEqual.out === 1; +} \ No newline at end of file diff --git a/zkp/js/test/anon.js b/zkp/js/test/anon.js index 79506bd..739e37b 100644 --- a/zkp/js/test/anon.js +++ b/zkp/js/test/anon.js @@ -165,6 +165,6 @@ describe("main circuit tests for Zeto fungible tokens with anonymity without enc err = e; } // console.log(err); - expect(err).to.match(/Error in template Zeto_92 line: 71/); + expect(err).to.match(/Error in template CheckSum_93 line: 48/); }); }); diff --git a/zkp/js/test/anon_enc.js b/zkp/js/test/anon_enc.js index 6d56628..4a793c1 100644 --- a/zkp/js/test/anon_enc.js +++ b/zkp/js/test/anon_enc.js @@ -226,7 +226,7 @@ describe("main circuit tests for Zeto fungible tokens with anonymity with encryp err = e; } // console.log(err); - expect(err).to.match(/Error in template Zeto_106 line: 82/); + expect(err).to.match(/Error in template CheckSum_93 line: 48/); }); it("should failed to match output UTXO after decrypting the cipher texts from the events if using the wrong sender public keys", async () => { diff --git a/zkp/js/test/anon_enc_nullifier.js b/zkp/js/test/anon_enc_nullifier.js index efbfc3f..b354316 100644 --- a/zkp/js/test/anon_enc_nullifier.js +++ b/zkp/js/test/anon_enc_nullifier.js @@ -406,7 +406,6 @@ describe("main circuit tests for Zeto fungible tokens with encryption and anonym err = e; } // console.log(err); - expect(err).to.match(/Error in template CheckSum_161 line: 44/); - expect(err).to.match(/Error in template Zeto_264 line: 96/); + expect(err).to.match(/Error in template CheckSum_163 line: 48/); }); }); diff --git a/zkp/js/test/anon_enc_nullifier_non_repudiation.js b/zkp/js/test/anon_enc_nullifier_non_repudiation.js index d543b34..61032d4 100644 --- a/zkp/js/test/anon_enc_nullifier_non_repudiation.js +++ b/zkp/js/test/anon_enc_nullifier_non_repudiation.js @@ -475,7 +475,6 @@ describe("main circuit tests for Zeto fungible tokens with encryption for non-re err = e; } // console.log(err); - expect(err).to.match(/Error in template CheckSum_161 line: 44/); - expect(err).to.match(/Error in template Zeto_265 line: 112/); + expect(err).to.match(/Error in template CheckSum_163 line: 48/); }); }); diff --git a/zkp/js/test/anon_nullifier.js b/zkp/js/test/anon_nullifier.js index 82f4353..4b7f9c7 100644 --- a/zkp/js/test/anon_nullifier.js +++ b/zkp/js/test/anon_nullifier.js @@ -318,7 +318,6 @@ describe("main circuit tests for Zeto fungible tokens with anonymity using nulli err = e; } // console.log(err); - expect(err).to.match(/Error in template CheckSum_161 line: 44/); - expect(err).to.match(/Error in template Zeto_251 line: 86/); + expect(err).to.match(/Error in template CheckSum_163 line: 48/); }); }); diff --git a/zkp/js/test/anon_nullifier_kyc.js b/zkp/js/test/anon_nullifier_kyc.js index 2156486..80b0e38 100644 --- a/zkp/js/test/anon_nullifier_kyc.js +++ b/zkp/js/test/anon_nullifier_kyc.js @@ -299,7 +299,6 @@ describe("main circuit tests for Zeto fungible tokens with anonymity, KYC, using error = e; } // console.log(error); - expect(error).to.match(/Error in template Zeto_254 line: 126/); expect(error).to.match(/Error in template CheckSMTProof_253 line: 46/); }); }); diff --git a/zkp/js/test/check_hashes_value.js b/zkp/js/test/check_hashes_value.js index ced0828..1845c76 100644 --- a/zkp/js/test/check_hashes_value.js +++ b/zkp/js/test/check_hashes_value.js @@ -101,7 +101,7 @@ describe("check_hashes_value circuit tests", () => { error = e; } // console.log(error); - expect(error).to.match(/Error in template Zeto_79 line: 35/); // hash check failed + expect(error).to.match(/Error in template CheckHashes_80 line: 60/); // hash check failed }); it("should fail to generate a witness because of negative values in output commitments", async () => { @@ -133,7 +133,7 @@ describe("check_hashes_value circuit tests", () => { error = e; } // console.log(error); - expect(error).to.match(/Error in template Zeto_79 line: 29/); // positive range check failed + expect(error).to.match(/Error in template CheckPositive_3 line: 37/); // positive range check failed }); it("should fail to generate a witness because of using the inverse of a negative value in output commitments", async () => { @@ -168,7 +168,7 @@ describe("check_hashes_value circuit tests", () => { error = e; } // console.log(error); - expect(error).to.match(/Error in template Zeto_79 line: 29/); // positive range check failed + expect(error).to.match(/Error in template CheckPositive_3 line: 37/); // positive range check failed }); it("should fail to generate a witness because a larger than MAX_VALUE is used in output", async () => { @@ -198,6 +198,6 @@ describe("check_hashes_value circuit tests", () => { error = e; } // console.log(error); - expect(error).to.match(/Error in template Zeto_79 line: 29/); // positive range check failed + expect(error).to.match(/Error in template CheckPositive_3 line: 37/); // positive range check failed }); }); diff --git a/zkp/js/test/check_nullifiers.js b/zkp/js/test/check_nullifiers.js index c52001a..648645e 100644 --- a/zkp/js/test/check_nullifiers.js +++ b/zkp/js/test/check_nullifiers.js @@ -150,6 +150,6 @@ describe("check_nullifiers circuit tests", () => { err = e; } // console.log(err); - expect(err).to.match(/Error in template Zeto_157 line: 62/); + expect(err).to.match(/Error in template Zeto_159 line: 62/); }); }); diff --git a/zkp/js/test/lib/check-hashes-tokenid-uri.js b/zkp/js/test/lib/check-hashes-tokenid-uri.js index f3b17a5..eecaf58 100644 --- a/zkp/js/test/lib/check-hashes-tokenid-uri.js +++ b/zkp/js/test/lib/check-hashes-tokenid-uri.js @@ -118,7 +118,7 @@ describe("check-hashes-tokenid-uri circuit tests", () => { } // console.log(error); expect(error).to.match( - /Error in template CheckHashesForTokenIdAndUri_74 line: 58/, + /Error in template CheckHashesForTokenIdAndUri_76 line: 58/, ); }); }); diff --git a/zkp/js/test/lib/check-hashes.js b/zkp/js/test/lib/check-hashes.js index da11891..39d01bd 100644 --- a/zkp/js/test/lib/check-hashes.js +++ b/zkp/js/test/lib/check-hashes.js @@ -158,6 +158,6 @@ describe("check-hashes circuit tests", () => { error = e; } // console.log(error); - expect(error).to.match(/Error in template CheckHashes_74 line: 60/); // hash check failed + expect(error).to.match(/Error in template CheckHashes_76 line: 60/); // hash check failed }); }); diff --git a/zkp/js/test/lib/check-nullifier-tokenid-uri.js b/zkp/js/test/lib/check-nullifier-tokenid-uri.js index a26e994..23d5787 100644 --- a/zkp/js/test/lib/check-nullifier-tokenid-uri.js +++ b/zkp/js/test/lib/check-nullifier-tokenid-uri.js @@ -119,7 +119,7 @@ describe("check-nullifier-tokenid-uri circuit tests", () => { } // console.log(error); expect(error).to.match( - /Error in template CheckNullifierForTokenIdAndUri_74 line: 58/, + /Error in template CheckNullifierForTokenIdAndUri_76 line: 58/, ); }); }); diff --git a/zkp/js/test/lib/check-positive.js b/zkp/js/test/lib/check-positive.js index 4c76b39..4d64fc4 100644 --- a/zkp/js/test/lib/check-positive.js +++ b/zkp/js/test/lib/check-positive.js @@ -66,7 +66,7 @@ describe("check-positive circuit tests", () => { error = e; } // console.log(error); - expect(error).to.match(/Error in template CheckPositive_3 line: 39/); // positive range check failed + expect(error).to.match(/Error in template CheckPositive_3 line: 37/); // positive range check failed }); it("should fail to generate a witness because of using the inverse of a negative value in output commitments", async () => { @@ -90,7 +90,7 @@ describe("check-positive circuit tests", () => { error = e; } // console.log(error); - expect(error).to.match(/Error in template CheckPositive_3 line: 39/); // positive range check failed + expect(error).to.match(/Error in template CheckPositive_3 line: 37/); // positive range check failed }); it("should fail to generate a witness because a larger than MAX_VALUE is used in output", async () => { @@ -108,6 +108,6 @@ describe("check-positive circuit tests", () => { error = e; } // console.log(error); - expect(error).to.match(/Error in template CheckPositive_3 line: 39/); // positive range check failed + expect(error).to.match(/Error in template CheckPositive_3 line: 37/); // positive range check failed }); }); diff --git a/zkp/js/test/lib/check-sum.js b/zkp/js/test/lib/check-sum.js index 1b7ceec..558d485 100644 --- a/zkp/js/test/lib/check-sum.js +++ b/zkp/js/test/lib/check-sum.js @@ -61,6 +61,6 @@ describe("check-sum circuit tests", () => { error = e; } // console.log(error); - expect(error).to.match(/Error in template CheckSum_0 line: 44/); + expect(error).to.match(/Error in template CheckSum_2 line: 48/); }); }); diff --git a/zkp/js/test/nf_anon.js b/zkp/js/test/nf_anon.js index 7c46d6d..5193025 100644 --- a/zkp/js/test/nf_anon.js +++ b/zkp/js/test/nf_anon.js @@ -154,9 +154,9 @@ describe("main circuit tests for Zeto non-fungible tokens with anonymity without error = e; } // console.log(error); - expect(error).to.match(/Error in template Zeto_87 line: 66/); + expect(error).to.match(/Error in template Zeto_89 line: 66/); expect(error).to.match( - /Error in template CheckHashesForTokenIdAndUri_86 line: 58/, + /Error in template CheckHashesForTokenIdAndUri_88 line: 58/, ); }); @@ -210,9 +210,9 @@ describe("main circuit tests for Zeto non-fungible tokens with anonymity without error = e; } // console.log(error); - expect(error).to.match(/Error in template Zeto_87 line: 66/); + expect(error).to.match(/Error in template Zeto_89 line: 66/); expect(error).to.match( - /Error in template CheckHashesForTokenIdAndUri_86 line: 58/, + /Error in template CheckHashesForTokenIdAndUri_88 line: 58/, ); }); }); diff --git a/zkp/js/test/nf_anon_nullifier.js b/zkp/js/test/nf_anon_nullifier.js index 27f7c2b..8244a57 100644 --- a/zkp/js/test/nf_anon_nullifier.js +++ b/zkp/js/test/nf_anon_nullifier.js @@ -196,7 +196,7 @@ describe("main circuit tests for Zeto non-fungible tokens with anonymity using n // console.log(err); expect(err).to.match(/Error in template Zeto_319 line: 76/); expect(err).to.match( - /Error in template CheckHashesForTokenIdAndUri_86 line: 58/, + /Error in template CheckHashesForTokenIdAndUri_88 line: 58/, ); }); @@ -264,7 +264,7 @@ describe("main circuit tests for Zeto non-fungible tokens with anonymity using n // console.log(err); expect(err).to.match(/Error in template Zeto_319 line: 76/); expect(err).to.match( - /Error in template CheckHashesForTokenIdAndUri_86 line: 58/, + /Error in template CheckHashesForTokenIdAndUri_88 line: 58/, ); }); @@ -331,7 +331,7 @@ describe("main circuit tests for Zeto non-fungible tokens with anonymity using n } // console.log(err); expect(err).to.match( - /Error in template CheckHashesForTokenIdAndUri_86 line: 58/, + /Error in template CheckHashesForTokenIdAndUri_88 line: 58/, ); }); @@ -398,7 +398,7 @@ describe("main circuit tests for Zeto non-fungible tokens with anonymity using n } // console.log(err); expect(err).to.match( - /Error in template CheckHashesForTokenIdAndUri_86 line: 58/, + /Error in template CheckHashesForTokenIdAndUri_88 line: 58/, ); }); });